├── app
├── proguard-rules.pro
├── .gitignore
├── src
│ └── main
│ │ ├── lib
│ │ ├── sweetblue
│ │ │ ├── library
│ │ │ │ ├── signing.gradle
│ │ │ │ ├── .gitignore
│ │ │ │ ├── signing_server.gradle
│ │ │ │ ├── src
│ │ │ │ │ └── main
│ │ │ │ │ │ ├── AndroidManifest.xml
│ │ │ │ │ │ └── res
│ │ │ │ │ │ ├── values-zh-rTW
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ ├── values-zh-rCN
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ ├── values-ko
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ ├── values-ja
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ ├── values
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ ├── values-nl
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ ├── values-nn
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ ├── values-da
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ ├── values-sv
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ ├── values-pt-rBR
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ ├── values-cs
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ ├── values-de
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ ├── values-ru
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ ├── values-it
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ ├── values-es
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ ├── values-pl
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ ├── values-fr-rCA
│ │ │ │ │ │ └── strings.xml
│ │ │ │ │ │ └── values-fr
│ │ │ │ │ │ └── strings.xml
│ │ │ │ └── proguard-rules.pro
│ │ │ ├── .gitignore
│ │ │ └── .travis.yml
│ │ ├── android-ripple-background
│ │ │ ├── library
│ │ │ │ ├── .gitignore
│ │ │ │ ├── gradle.properties
│ │ │ │ ├── src
│ │ │ │ │ └── main
│ │ │ │ │ │ ├── res
│ │ │ │ │ │ └── values
│ │ │ │ │ │ │ ├── colors.xml
│ │ │ │ │ │ │ ├── dimensions.xml
│ │ │ │ │ │ │ └── attrs.xml
│ │ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ ├── build.gradle
│ │ │ │ └── proguard-rules.pro
│ │ │ ├── .gitignore
│ │ │ ├── LICENSE
│ │ │ └── README.md
│ │ ├── material-intro-screen
│ │ │ ├── material-intro-screen
│ │ │ │ ├── .gitignore
│ │ │ │ ├── src
│ │ │ │ │ └── main
│ │ │ │ │ │ ├── AndroidManifest.xml
│ │ │ │ │ │ ├── res
│ │ │ │ │ │ ├── values
│ │ │ │ │ │ │ ├── dimens.xml
│ │ │ │ │ │ │ ├── ids.xml
│ │ │ │ │ │ │ ├── colors.xml
│ │ │ │ │ │ │ ├── styles.xml
│ │ │ │ │ │ │ └── attrs.xml
│ │ │ │ │ │ ├── anim
│ │ │ │ │ │ │ ├── cycle_2.xml
│ │ │ │ │ │ │ ├── shake_it.xml
│ │ │ │ │ │ │ ├── fade_in.xml
│ │ │ │ │ │ │ └── fade_out.xml
│ │ │ │ │ │ ├── drawable
│ │ │ │ │ │ │ ├── button_background.xml
│ │ │ │ │ │ │ ├── ic_next.xml
│ │ │ │ │ │ │ ├── ic_previous.xml
│ │ │ │ │ │ │ ├── ic_finish.xml
│ │ │ │ │ │ │ └── ic_skip.xml
│ │ │ │ │ │ ├── layout
│ │ │ │ │ │ │ ├── empty_fragment_slide.xml
│ │ │ │ │ │ │ └── fragment_slide.xml
│ │ │ │ │ │ ├── drawable-v21
│ │ │ │ │ │ │ └── button_background.xml
│ │ │ │ │ │ ├── values-v29
│ │ │ │ │ │ │ └── styles.xml
│ │ │ │ │ │ ├── values-v21
│ │ │ │ │ │ │ └── styles.xml
│ │ │ │ │ │ └── layout-land
│ │ │ │ │ │ │ └── fragment_slide.xml
│ │ │ │ │ │ └── java
│ │ │ │ │ │ └── io
│ │ │ │ │ │ └── github
│ │ │ │ │ │ └── dreierf
│ │ │ │ │ │ └── materialintroscreen
│ │ │ │ │ │ ├── listeners
│ │ │ │ │ │ ├── IFinishListener.java
│ │ │ │ │ │ ├── IPageSelectedListener.java
│ │ │ │ │ │ ├── IPageScrolledListener.java
│ │ │ │ │ │ ├── clickListeners
│ │ │ │ │ │ │ └── PermissionNotGrantedClickListener.java
│ │ │ │ │ │ ├── scrollListeners
│ │ │ │ │ │ │ └── ParallaxScrollListener.java
│ │ │ │ │ │ ├── ViewBehavioursOnPageChangeListener.java
│ │ │ │ │ │ └── MessageButtonBehaviourOnPageSelected.java
│ │ │ │ │ │ ├── parallax
│ │ │ │ │ │ ├── Parallaxable.java
│ │ │ │ │ │ ├── ParallaxFragment.java
│ │ │ │ │ │ ├── ParallaxRelativeLayout.java
│ │ │ │ │ │ ├── ParallaxLinearLayout.java
│ │ │ │ │ │ └── ParallaxFrameLayout.java
│ │ │ │ │ │ ├── animations
│ │ │ │ │ │ ├── IViewTranslation.java
│ │ │ │ │ │ ├── translations
│ │ │ │ │ │ │ ├── NoTranslation.java
│ │ │ │ │ │ │ ├── AlphaTranslation.java
│ │ │ │ │ │ │ ├── DefaultAlphaTranslation.java
│ │ │ │ │ │ │ ├── DefaultPositionTranslation.java
│ │ │ │ │ │ │ ├── ExitDefaultTranslation.java
│ │ │ │ │ │ │ └── EnterDefaultTranslation.java
│ │ │ │ │ │ ├── wrappers
│ │ │ │ │ │ │ ├── ViewPagerTranslationWrapper.java
│ │ │ │ │ │ │ ├── PageIndicatorTranslationWrapper.java
│ │ │ │ │ │ │ ├── NextButtonTranslationWrapper.java
│ │ │ │ │ │ │ ├── BackButtonTranslationWrapper.java
│ │ │ │ │ │ │ └── SkipButtonTranslationWrapper.java
│ │ │ │ │ │ └── ViewTranslationWrapper.java
│ │ │ │ │ │ ├── MessageButtonBehaviour.java
│ │ │ │ │ │ ├── MoveUpBehaviour.java
│ │ │ │ │ │ ├── SlideFragmentBuilder.java
│ │ │ │ │ │ └── adapter
│ │ │ │ │ │ └── SlidesAdapter.java
│ │ │ │ ├── gradle.properties
│ │ │ │ └── proguard-rules.pro
│ │ │ ├── settings.gradle
│ │ │ ├── .gitignore
│ │ │ ├── gradle.properties
│ │ │ ├── LICENSE
│ │ │ ├── .travis.yml
│ │ │ └── gradlew.bat
│ │ └── powerampapi
│ │ │ ├── .gitignore
│ │ │ ├── poweramp_api_lib
│ │ │ ├── .gitignore
│ │ │ ├── .settings
│ │ │ │ └── .gitignore
│ │ │ ├── res
│ │ │ │ ├── values
│ │ │ │ │ └── strings.xml
│ │ │ │ └── drawable
│ │ │ │ │ ├── introslidelowramicon.xml
│ │ │ │ │ └── notifications_off.xml
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── project.properties
│ │ │ ├── .classpath
│ │ │ ├── LICENSE.txt
│ │ │ ├── proguard.cfg
│ │ │ ├── .project
│ │ │ └── build.xml
│ │ │ └── README.md
│ │ ├── res
│ │ ├── values-az
│ │ │ └── strings.xml
│ │ ├── xml
│ │ │ ├── backup_descriptor.xml
│ │ │ └── provider_paths.xml
│ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_round.png
│ │ │ └── ic_launcher_foreground.png
│ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_round.png
│ │ │ └── ic_launcher_foreground.png
│ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_round.png
│ │ │ └── ic_launcher_foreground.png
│ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_round.png
│ │ │ └── ic_launcher_foreground.png
│ │ ├── README
│ │ ├── drawable-hdpi
│ │ │ ├── ic_stat_name.png
│ │ │ ├── introslide2icon.xml
│ │ │ ├── battery_full.xml
│ │ │ ├── image.xml
│ │ │ ├── image_white.xml
│ │ │ ├── notification.xml
│ │ │ ├── introslide4icon.xml
│ │ │ ├── notifications.xml
│ │ │ ├── notifications_grey.xml
│ │ │ ├── introslide5icon.xml
│ │ │ ├── introslidebluetoothicon.xml
│ │ │ ├── cloud_done.xml
│ │ │ ├── cloud.xml
│ │ │ ├── time.xml
│ │ │ ├── position_marker.xml
│ │ │ ├── introslide3icon.xml
│ │ │ ├── introslide1icon.xml
│ │ │ ├── scan.xml
│ │ │ ├── bluetooth_disconnect.xml
│ │ │ ├── weather.xml
│ │ │ ├── settings.xml
│ │ │ └── bluetooth_connect.xml
│ │ ├── drawable-mdpi
│ │ │ └── ic_stat_name.png
│ │ ├── drawable-xhdpi
│ │ │ └── ic_stat_name.png
│ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_round.png
│ │ │ └── ic_launcher_foreground.png
│ │ ├── drawable-xxhdpi
│ │ │ └── ic_stat_name.png
│ │ ├── values
│ │ │ ├── ic_launcher_background.xml
│ │ │ ├── dimens.xml
│ │ │ ├── styles.xml
│ │ │ └── colors.xml
│ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher_round.xml
│ │ │ └── ic_launcher.xml
│ │ ├── menu
│ │ │ ├── device_detail_manu.xml
│ │ │ └── owm_position_picker_menu.xml
│ │ ├── layout
│ │ │ ├── activity_main.xml
│ │ │ ├── activity_permissions.xml
│ │ │ ├── device_list_item.xml
│ │ │ ├── dialog_api_key.xml
│ │ │ ├── app_list_item.xml
│ │ │ ├── fragment_app_list.xml
│ │ │ ├── fragment_device_list.xml
│ │ │ └── fragment_position_picker.xml
│ │ ├── drawable
│ │ │ ├── ic_notifications.xml
│ │ │ └── ic_ring_volume.xml
│ │ ├── values-night
│ │ │ └── colors.xml
│ │ ├── values-ast
│ │ │ └── strings.xml
│ │ ├── values-lb
│ │ │ └── strings.xml
│ │ ├── values-ia
│ │ │ └── strings.xml
│ │ └── values-bqi
│ │ │ └── strings.xml
│ │ ├── ic_launcher-web.png
│ │ └── java
│ │ └── org
│ │ └── asteroidos
│ │ └── sync
│ │ ├── connectivity
│ │ ├── IServiceCallback.java
│ │ ├── IService.java
│ │ ├── IConnectivityService.java
│ │ └── SilentModeService.java
│ │ ├── services
│ │ ├── GenericFileProvider.java
│ │ └── AutostartService.java
│ │ ├── asteroid
│ │ └── IAsteroidDevice.java
│ │ ├── fragments
│ │ └── AppListFragment.java
│ │ ├── utils
│ │ └── AppInfo.java
│ │ └── dataobjects
│ │ └── Notification.java
└── build.gradle.kts
├── settings.gradle.kts
├── fastlane
└── metadata
│ └── android
│ ├── de-DE
│ ├── title.txt
│ ├── short_description.txt
│ └── full_description.txt
│ ├── en-US
│ ├── title.txt
│ ├── short_description.txt
│ ├── changelogs
│ │ ├── 26.txt
│ │ ├── 20.txt
│ │ ├── 24.txt
│ │ ├── 29.txt
│ │ ├── 19.txt
│ │ ├── 17.txt
│ │ ├── 18.txt
│ │ ├── 22.txt
│ │ ├── 27.txt
│ │ ├── 25.txt
│ │ ├── 28.txt
│ │ └── 23.txt
│ ├── images
│ │ ├── icon.png
│ │ └── phoneScreenshots
│ │ │ ├── 0.png
│ │ │ ├── 1.png
│ │ │ └── 2.png
│ └── full_description.txt
│ └── fr-FR
│ ├── title.txt
│ ├── short_description.txt
│ └── full_description.txt
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── AUTHORS
├── .idea
└── copyright
│ ├── profiles_settings.xml
│ └── GPLv3.xml
├── .gitignore
├── .github
└── workflows
│ └── android.yml
└── gradlew.bat
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/settings.gradle.kts:
--------------------------------------------------------------------------------
1 | include(":app")
2 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/signing.gradle:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/de-DE/title.txt:
--------------------------------------------------------------------------------
1 | AsteroidOS Sync
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/title.txt:
--------------------------------------------------------------------------------
1 | AsteroidOS Sync
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr-FR/title.txt:
--------------------------------------------------------------------------------
1 | AsteroidOS Sync
2 |
--------------------------------------------------------------------------------
/app/src/main/lib/android-ripple-background/library/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/app/src/main/lib/powerampapi/.gitignore:
--------------------------------------------------------------------------------
1 | local.properties
2 | /bin
3 | /gen
4 | .DS_Store
--------------------------------------------------------------------------------
/app/src/main/lib/powerampapi/poweramp_api_lib/.gitignore:
--------------------------------------------------------------------------------
1 | local.properties
2 | /bin
3 | /gen
--------------------------------------------------------------------------------
/app/src/main/lib/powerampapi/poweramp_api_lib/.settings/.gitignore:
--------------------------------------------------------------------------------
1 | *.eclipse.jdt.core.prefs
2 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':material-intro-screen'
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/de-DE/short_description.txt:
--------------------------------------------------------------------------------
1 | Synchronisiere deine AsteroidOS Smartwatch
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/short_description.txt:
--------------------------------------------------------------------------------
1 | Synchronize with your AsteroidOS smartwatch
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr-FR/short_description.txt:
--------------------------------------------------------------------------------
1 | Synchronise votre montre connectée AsteroidOS
2 |
--------------------------------------------------------------------------------
/app/src/main/res/values-az/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/backup_descriptor.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | android.enableJetifier=true
2 | android.useAndroidX=true
3 | org.gradle.jvmargs=-Xmx4096m
4 |
--------------------------------------------------------------------------------
/app/src/main/ic_launcher-web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/ic_launcher-web.png
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/26.txt:
--------------------------------------------------------------------------------
1 | 0.26
2 | * Fixes an issue where the weather information could not be synced.
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/20.txt:
--------------------------------------------------------------------------------
1 | 0.20
2 | * Bluetooth connectivity improvements
3 | * Translation improvements
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/24.txt:
--------------------------------------------------------------------------------
1 | 0.23
2 | * Fixes an issue where watches could not be discovered on older Android versions.
3 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/lib/android-ripple-background/library/gradle.properties:
--------------------------------------------------------------------------------
1 | POM_NAME=RippleBackground Library
2 | POM_ARTIFACT_ID=library
3 | POM_PACKAGING=aar
4 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/README:
--------------------------------------------------------------------------------
1 | Most of the icons used in drawable-hdpi come from the Material Design part of
2 | the Ion Icon Set released under MIT license.
3 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_stat_name.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/drawable-hdpi/ic_stat_name.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_stat_name.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/drawable-mdpi/ic_stat_name.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_stat_name.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/drawable-xhdpi/ic_stat_name.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/xml/provider_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/fastlane/metadata/android/en-US/images/icon.png
--------------------------------------------------------------------------------
/AUTHORS:
--------------------------------------------------------------------------------
1 | Florent Revest revestflo@gmail.com
2 | Doug Koellmer dougkoellmer@hotmail.com
3 | Justus Tartz git@jrtberlin.de
4 | Doomsdayrs doomsdayrs@gmail.com
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_stat_name.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/drawable-xxhdpi/ic_stat_name.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/29.txt:
--------------------------------------------------------------------------------
1 | 0.29
2 | * Fixes a bug that could cause stability issues (Thanks argosphil!)
3 | * Translation improvements
4 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/gradle.properties:
--------------------------------------------------------------------------------
1 | POM_NAME=material-intro-screen
2 | POM_ARTIFACT_ID=material-intro-screen
3 | POM_PACKAGING=aar
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/signing_server.gradle:
--------------------------------------------------------------------------------
1 | signing {
2 | required { gradle.taskGraph.hasTask("uploadArchives") }
3 | sign configurations.archives
4 | }
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/19.txt:
--------------------------------------------------------------------------------
1 | 0.19
2 | * Music volume control via asteroid-music
3 | * Android 11 optimizations
4 | * Translation improvements
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #E47C21
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/0.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AsteroidOS/AsteroidOSSync/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/17.txt:
--------------------------------------------------------------------------------
1 | 0.17
2 | * Ringtone vibration pattern on incomming calls
3 | * Fixed screenshot saving on Android 10
4 | * Translation improvements
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/18.txt:
--------------------------------------------------------------------------------
1 | 0.18
2 | * Improvements to the incomming call detection
3 | * Contact name lookup for incomming calls
4 | * Translation improvements
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/22.txt:
--------------------------------------------------------------------------------
1 | 0.22
2 | * Custom OWM API Key setting
3 | * Android 12 bluetooth fixes
4 | * Translation improvements
5 | * Update dependencies
6 |
--------------------------------------------------------------------------------
/app/src/main/lib/android-ripple-background/library/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #0099CC
4 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea
6 | .DS_Store
7 | /build
8 | /captures
9 | .externalNativeBuild
10 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 72dp
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/27.txt:
--------------------------------------------------------------------------------
1 | 0.27
2 | * Improved Android 12+ support (Thanks dv1!)
3 | * The Bluetooth connection process has been improved.
4 | * Translation improvements
5 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | @android:color/transparent
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/lib/android-ripple-background/library/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/anim/cycle_2.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/lib/android-ripple-background/library/src/main/res/values/dimensions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 2dp
4 | 64dp
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/25.txt:
--------------------------------------------------------------------------------
1 | 0.25
2 | * Fixes an issue where users are unable to grant the WRITE_EXTERNAL_STORAGE permission on newer Android versions.
3 | * Fixes an issue where notifications could not be displayed on Android 13.
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/28.txt:
--------------------------------------------------------------------------------
1 | 0.28
2 | * Android 13 connection improvements (Thanks perillamint!)
3 | * Android 13 permission improvements (Thanks Doomsdayrs!)
4 | * Code quality improvements (Thanks Doomsdayrs!)
5 | * Translation improvements
6 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/listeners/IFinishListener.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.listeners;
2 |
3 | public interface IFinishListener {
4 | void doOnFinish();
5 | }
6 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Sun Dec 06 09:32:39 CET 2020
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
7 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Built application files
2 | /build
3 |
4 | # Local configuration file (sdk path, etc)
5 | local.properties
6 |
7 | # Gradle generated files
8 | .gradle/
9 |
10 | # Signing files
11 | .signing/
12 |
13 | # User-specific configurations
14 | .idea/
15 | *.iml
16 | app/*.iml
17 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/listeners/IPageSelectedListener.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.listeners;
2 |
3 | public interface IPageSelectedListener {
4 | void pageSelected(int position);
5 | }
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/drawable/button_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/lib/powerampapi/README.md:
--------------------------------------------------------------------------------
1 | Poweramp APIs
2 | ===========
3 |
4 | Please check https://forum.powerampapp.com/forum/13-developers-area/ for more details
5 |
6 | Also see [poweramp_skin_sdk/poweramp_skin_sample/readme.md](poweramp_skin_sdk/poweramp_skin_sample/readme.md)
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/23.txt:
--------------------------------------------------------------------------------
1 | 0.23
2 | * Dependency updates
3 | * Build system upgrades
4 | * Groovy -> Kotlin (Thanks Doomsdayrs!)
5 | * improved Android 13 support
6 | * Translation improvements
7 | * Fixed a potential crash in the notification parser (Thanks Doomsdayrs!)
8 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/listeners/IPageScrolledListener.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.listeners;
2 |
3 | public interface IPageScrolledListener {
4 | void pageScrolled(int position, float offset);
5 | }
--------------------------------------------------------------------------------
/app/src/main/lib/powerampapi/poweramp_api_lib/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Unknown
4 | Unknown artist
5 | Unknown album
6 |
7 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/full_description.txt:
--------------------------------------------------------------------------------
1 | AsteroidOSSync is the official Android companion app for synchronizing your AsteroidOS smartwatch.
2 |
3 | • Time sync
4 | • Weather sync
5 | • Notification sync
6 | • "Find my watch"
7 | • Grab a screenshot
8 |
9 | To learn more about AsteroidOS, visit https://asteroidos.org/
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/anim/shake_it.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/de-DE/full_description.txt:
--------------------------------------------------------------------------------
1 | AsteroidOSSync ist die offizielle Android App um deine AsteroidOS Smartwatch zu synchronisieren.
2 |
3 | • Zeit Sync
4 | • Wetter Sync
5 | • Benachrichtigungs Sync
6 | • "Finde meine Uhr"
7 | • Erzeuge Bildschirmfotos
8 |
9 | Um mehr über AsteroidOS zu lernen, besuche https://asteroidos.org/
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/parallax/Parallaxable.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.parallax;
2 |
3 | import androidx.annotation.FloatRange;
4 |
5 | public interface Parallaxable {
6 | void setOffset(@FloatRange(from = -1.0, to = 1.0) float offset);
7 | }
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/anim/fade_in.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/anim/fade_out.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/lib/powerampapi/poweramp_api_lib/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/device_detail_manu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/animations/IViewTranslation.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.animations;
2 |
3 | import androidx.annotation.FloatRange;
4 | import android.view.View;
5 |
6 | public interface IViewTranslation {
7 | void translate(View view, @FloatRange(from = 0, to = 1.0) float percentage);
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/owm_position_picker_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr-FR/full_description.txt:
--------------------------------------------------------------------------------
1 | AsteroidOSSync est l'application Android officielle pour synchroniser votre smartwatch AsteroidOS.
2 |
3 | • Synchronisation de l'horloge
4 | • Synchronisation de la météo
5 | • Synchronisation des notifications
6 | • Fonctionnalité "Trouver ma montre"
7 | • Captures d'écrans
8 |
9 | Pour en apprendre d'avantage sur AsteroidOS, visitez https://asteroidos.org/
10 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 60dp
4 | 16dp
5 | 20dp
6 | 30dp
7 | 70dp
8 | 16dp
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/drawable/ic_next.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/layout/empty_fragment_slide.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/drawable/ic_previous.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/drawable/ic_finish.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/drawable-v21/button_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 | -
5 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/values-v29/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/introslide2icon.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_notifications.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_permissions.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/.gitignore:
--------------------------------------------------------------------------------
1 | !**/bin
2 | **/bin/*
3 | !**/bin/*.apk
4 | .svn
5 | **.DS_Store
6 | .gradle/
7 | build/
8 | scripts/build
9 | scripts/script_output/
10 | **/proguard/
11 | **/doc
12 | **/docs
13 | **/scripts/script_output
14 | samples/hello_ble/.settings/org.eclipse.jdt.core.prefs
15 | samples/ble_util/.settings/org.eclipse.jdt.core.prefs
16 | *.iml
17 | .idea/
18 | library/build
19 | library/script_output/
20 | local.properties
21 | library/app.iml
22 | sweetblue.iml
23 | library/sweetblue-app.iml
24 | captures/
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/drawable/ic_skip.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/lib/powerampapi/poweramp_api_lib/project.properties:
--------------------------------------------------------------------------------
1 | # This file is automatically generated by Android Tools.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file must be checked in Version Control Systems.
5 | #
6 | # To customize properties used by the Ant build system use,
7 | # "ant.properties", and override values to adapt the script to your
8 | # project structure.
9 | java.source=1.7
10 | java.target=1.7
11 | java.encoding=utf-8
12 | android.library=true
13 | # Project target.
14 | target=android-28
15 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/animations/translations/NoTranslation.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.animations.translations;
2 |
3 | import androidx.annotation.FloatRange;
4 | import android.view.View;
5 |
6 | import io.github.dreierf.materialintroscreen.animations.IViewTranslation;
7 |
8 | public class NoTranslation implements IViewTranslation {
9 | @Override
10 | public void translate(View view, @FloatRange(from = 0, to = 1.0) float percentage) {
11 | }
12 | }
--------------------------------------------------------------------------------
/app/src/main/res/layout/device_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/battery_full.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/app/src/main/lib/powerampapi/poweramp_api_lib/res/drawable/introslidelowramicon.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/lib/android-ripple-background/.gitignore:
--------------------------------------------------------------------------------
1 | # built application files
2 | *.apk
3 | *.ap_
4 |
5 | # files for the dex VM
6 | *.dex
7 |
8 | # Java class files
9 | *.class
10 | .DS_Store
11 |
12 | # generated files
13 | bin/
14 | gen/
15 |
16 | # Local configuration file (sdk path, etc)
17 | local.properties
18 |
19 | # Eclipse project files
20 | .classpath
21 | .project
22 | .settings/
23 |
24 | # Proguard folder generated by Eclipse
25 | proguard/
26 |
27 | #Android Studio
28 | build/
29 |
30 | # Intellij project files
31 | *.iml
32 | *.ipr
33 | *.iws
34 | .idea/
35 |
36 | #gradle
37 | .gradle/
38 |
39 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/image.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/animations/translations/AlphaTranslation.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.animations.translations;
2 |
3 | import androidx.annotation.FloatRange;
4 | import android.view.View;
5 |
6 | import io.github.dreierf.materialintroscreen.animations.IViewTranslation;
7 |
8 | public class AlphaTranslation implements IViewTranslation {
9 | @Override
10 | public void translate(View view, @FloatRange(from = 0, to = 1.0) float percentage) {
11 | view.setAlpha(1.0f - percentage);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/animations/translations/DefaultAlphaTranslation.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.animations.translations;
2 |
3 | import androidx.annotation.FloatRange;
4 | import android.view.View;
5 |
6 | import io.github.dreierf.materialintroscreen.animations.IViewTranslation;
7 |
8 | public class DefaultAlphaTranslation implements IViewTranslation {
9 | @Override
10 | public void translate(View view, @FloatRange(from = 0, to = 1.0) float percentage) {
11 | view.setAlpha(1f);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/image_white.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/notification.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/introslide4icon.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/notifications.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/animations/translations/DefaultPositionTranslation.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.animations.translations;
2 |
3 | import androidx.annotation.FloatRange;
4 | import android.view.View;
5 |
6 | import io.github.dreierf.materialintroscreen.animations.IViewTranslation;
7 |
8 | public class DefaultPositionTranslation implements IViewTranslation {
9 | @Override
10 | public void translate(View view, @FloatRange(from = 0, to = 1.0) float percentage) {
11 | view.setTranslationY(0);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/notifications_grey.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/introslide5icon.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/introslidebluetoothicon.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/cloud_done.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_api_key.xml:
--------------------------------------------------------------------------------
1 |
5 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/lib/android-ripple-background/library/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/lib/android-ripple-background/library/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion 21
5 | buildToolsVersion "21.1.1"
6 |
7 | defaultConfig {
8 | applicationId "com.skyfishjy.library"
9 | minSdkVersion 11
10 | targetSdkVersion 21
11 | versionCode 2
12 | versionName "1.0.1"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | }
21 |
22 | dependencies {
23 | }
24 |
25 | apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'
26 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/animations/translations/ExitDefaultTranslation.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.animations.translations;
2 |
3 | import android.view.View;
4 |
5 | import androidx.annotation.FloatRange;
6 | import org.asteroidos.sync.R;
7 | import io.github.dreierf.materialintroscreen.animations.IViewTranslation;
8 |
9 | public class ExitDefaultTranslation implements IViewTranslation {
10 | @Override
11 | public void translate(View view, @FloatRange(from = 0, to = 1.0) float percentage) {
12 | view.setTranslationY(percentage * view.getResources().getDimensionPixelOffset(R.dimen.y_offset));
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
14 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/animations/translations/EnterDefaultTranslation.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.animations.translations;
2 |
3 | import androidx.annotation.FloatRange;
4 | import android.view.View;
5 |
6 | import org.asteroidos.sync.R;
7 | import io.github.dreierf.materialintroscreen.animations.IViewTranslation;
8 |
9 | public class EnterDefaultTranslation implements IViewTranslation {
10 | @Override
11 | public void translate(View view, @FloatRange(from = 0, to = 1.0) float percentage) {
12 | view.setTranslationY((1f - percentage) * view.getResources().getDimensionPixelOffset(R.dimen.y_offset));
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in D:\Android/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Users/ryanbis/Library/Android/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/cloud.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/app/src/main/lib/android-ripple-background/library/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Users/fyu/Workplace/android-sdk-macosx/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/app/src/main/lib/powerampapi/poweramp_api_lib/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/time.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
16 |
--------------------------------------------------------------------------------
/app/src/main/lib/powerampapi/poweramp_api_lib/res/drawable/notifications_off.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/animations/wrappers/ViewPagerTranslationWrapper.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.animations.wrappers;
2 |
3 | import android.view.View;
4 |
5 | import io.github.dreierf.materialintroscreen.animations.ViewTranslationWrapper;
6 | import io.github.dreierf.materialintroscreen.animations.translations.AlphaTranslation;
7 | import io.github.dreierf.materialintroscreen.animations.translations.DefaultAlphaTranslation;
8 |
9 | public class ViewPagerTranslationWrapper extends ViewTranslationWrapper {
10 | public ViewPagerTranslationWrapper(View view) {
11 | super(view);
12 |
13 | setDefaultTranslation(new DefaultAlphaTranslation())
14 | .setExitTranslation(new AlphaTranslation());
15 | }
16 | }
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/animations/wrappers/PageIndicatorTranslationWrapper.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.animations.wrappers;
2 |
3 | import android.view.View;
4 |
5 | import io.github.dreierf.materialintroscreen.animations.ViewTranslationWrapper;
6 | import io.github.dreierf.materialintroscreen.animations.translations.DefaultPositionTranslation;
7 | import io.github.dreierf.materialintroscreen.animations.translations.ExitDefaultTranslation;
8 |
9 | public class PageIndicatorTranslationWrapper extends ViewTranslationWrapper {
10 | public PageIndicatorTranslationWrapper(View view) {
11 | super(view);
12 |
13 | setDefaultTranslation(new DefaultPositionTranslation())
14 | .setExitTranslation(new ExitDefaultTranslation());
15 | }
16 | }
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/position_marker.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
14 |
--------------------------------------------------------------------------------
/.idea/copyright/GPLv3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/animations/wrappers/NextButtonTranslationWrapper.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.animations.wrappers;
2 |
3 | import android.view.View;
4 |
5 | import org.asteroidos.sync.R;
6 | import io.github.dreierf.materialintroscreen.animations.ViewTranslationWrapper;
7 | import io.github.dreierf.materialintroscreen.animations.translations.DefaultPositionTranslation;
8 | import io.github.dreierf.materialintroscreen.animations.translations.ExitDefaultTranslation;
9 |
10 | public class NextButtonTranslationWrapper extends ViewTranslationWrapper {
11 | public NextButtonTranslationWrapper(View view) {
12 | super(view);
13 |
14 | setExitTranslation(new ExitDefaultTranslation())
15 | .setDefaultTranslation(new DefaultPositionTranslation())
16 | .setErrorAnimation(R.anim.shake_it);
17 | }
18 | }
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/MessageButtonBehaviour.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen;
2 |
3 | import android.view.View;
4 |
5 | @SuppressWarnings("unused")
6 | public class MessageButtonBehaviour {
7 | private View.OnClickListener clickListener;
8 | private String messageButtonText;
9 |
10 | public MessageButtonBehaviour(View.OnClickListener clickListener, String messageButtonText) {
11 | this.clickListener = clickListener;
12 | this.messageButtonText = messageButtonText;
13 | }
14 |
15 | public MessageButtonBehaviour(String messageButtonText) {
16 | this.messageButtonText = messageButtonText;
17 | }
18 |
19 | public View.OnClickListener getClickListener() {
20 | return clickListener;
21 | }
22 |
23 | public String getMessageButtonText() {
24 | return messageButtonText;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_ring_volume.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/java/org/asteroidos/sync/connectivity/IServiceCallback.java:
--------------------------------------------------------------------------------
1 | /*
2 | * AsteroidOSSync
3 | * Copyright (c) 2023 AsteroidOS
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 |
19 | package org.asteroidos.sync.connectivity;
20 |
21 | public interface IServiceCallback {
22 | void call(byte[] data);
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/main/java/org/asteroidos/sync/services/GenericFileProvider.java:
--------------------------------------------------------------------------------
1 | /*
2 | * AsteroidOSSync
3 | * Copyright (c) 2023 AsteroidOS
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 |
19 | package org.asteroidos.sync.services;
20 |
21 | import androidx.core.content.FileProvider;
22 |
23 | public class GenericFileProvider extends FileProvider {}
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/introslide3icon.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
10 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
19 |
20 | android.useAndroidX=true
21 | android.enableJetifier=true
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/animations/wrappers/BackButtonTranslationWrapper.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.animations.wrappers;
2 |
3 | import android.view.View;
4 |
5 | import io.github.dreierf.materialintroscreen.animations.ViewTranslationWrapper;
6 | import io.github.dreierf.materialintroscreen.animations.translations.DefaultPositionTranslation;
7 | import io.github.dreierf.materialintroscreen.animations.translations.EnterDefaultTranslation;
8 | import io.github.dreierf.materialintroscreen.animations.translations.ExitDefaultTranslation;
9 |
10 | public class BackButtonTranslationWrapper extends ViewTranslationWrapper {
11 | public BackButtonTranslationWrapper(View view) {
12 | super(view);
13 |
14 | setEnterTranslation(new EnterDefaultTranslation())
15 | .setDefaultTranslation(new DefaultPositionTranslation())
16 | .setExitTranslation(new ExitDefaultTranslation());
17 | }
18 | }
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/animations/wrappers/SkipButtonTranslationWrapper.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.animations.wrappers;
2 |
3 | import android.view.View;
4 |
5 | import io.github.dreierf.materialintroscreen.animations.ViewTranslationWrapper;
6 | import io.github.dreierf.materialintroscreen.animations.translations.DefaultPositionTranslation;
7 | import io.github.dreierf.materialintroscreen.animations.translations.EnterDefaultTranslation;
8 | import io.github.dreierf.materialintroscreen.animations.translations.ExitDefaultTranslation;
9 |
10 | public class SkipButtonTranslationWrapper extends ViewTranslationWrapper {
11 | public SkipButtonTranslationWrapper(View view) {
12 | super(view);
13 |
14 | setEnterTranslation(new EnterDefaultTranslation())
15 | .setDefaultTranslation(new DefaultPositionTranslation())
16 | .setExitTranslation(new ExitDefaultTranslation());
17 | }
18 | }
--------------------------------------------------------------------------------
/.github/workflows/android.yml:
--------------------------------------------------------------------------------
1 | name: Android CI
2 |
3 | on:
4 | pull_request:
5 | branches: [ master ]
6 | types: [ opened, synchronize]
7 | release:
8 | types: [ published ]
9 | workflow_dispatch:
10 |
11 | jobs:
12 | build:
13 |
14 | runs-on: ubuntu-latest
15 |
16 | steps:
17 | - uses: actions/checkout@v2
18 | - name: set up JDK 17
19 | uses: actions/setup-java@v2
20 | with:
21 | java-version: '17'
22 | distribution: 'adopt'
23 |
24 | - name: Grant execute permission for gradlew
25 | run: chmod +x gradlew
26 | - name: Build with Gradle
27 | run: ./gradlew build
28 |
29 | - name: Archive linter results
30 | uses: actions/upload-artifact@v3
31 | with:
32 | name: lint-result.html
33 | path: app/build/reports/lint-results-debug.html
34 |
35 | - name: Archive debug.apk
36 | uses: actions/upload-artifact@v3
37 | with:
38 | name: asteroidossync-debug.apk
39 | path: app/build/outputs/apk/debug/app-debug.apk
40 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/listeners/clickListeners/PermissionNotGrantedClickListener.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.listeners.clickListeners;
2 |
3 | import android.view.View;
4 |
5 | import io.github.dreierf.materialintroscreen.MaterialIntroActivity;
6 | import io.github.dreierf.materialintroscreen.animations.ViewTranslationWrapper;
7 |
8 | public class PermissionNotGrantedClickListener implements View.OnClickListener {
9 | private final MaterialIntroActivity activity;
10 | private final ViewTranslationWrapper translationWrapper;
11 |
12 | public PermissionNotGrantedClickListener(MaterialIntroActivity activity, ViewTranslationWrapper translationWrapper) {
13 | this.activity = activity;
14 | this.translationWrapper = translationWrapper;
15 | }
16 |
17 | @Override
18 | public void onClick(View v) {
19 | translationWrapper.error();
20 | activity.showPermissionsNotGrantedError();
21 | }
22 | }
--------------------------------------------------------------------------------
/app/src/main/lib/powerampapi/poweramp_api_lib/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (C) 2011-2013 Maksim Petrov
2 |
3 | Redistribution and use in source and binary forms, with or without
4 | modification, are permitted for widgets, plugins, applications and other software
5 | which communicate with PowerAMP application on Android platform.
6 |
7 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
8 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
9 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
10 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
11 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
12 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
13 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
14 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
15 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
16 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
17 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
18 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #f57c00
4 | #e65100
5 | #e65100
6 | #FF8F00
7 | #FF6F00
8 | #FB8600
9 | #F96800
10 | #F77E00
11 | #F36000
12 | #F37500
13 | #EC5900
14 | #EF6C00
15 | #E65100
16 | #f57c00
17 | #e65100
18 | @android:color/black
19 | @android:color/white
20 | #ff8f6b
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/introslide1icon.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
10 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/values-night/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #f57c00
4 | #e65100
5 | #e65100
6 | #FF8F00
7 | #FF6F00
8 | #FB8600
9 | #F96800
10 | #F77E00
11 | #F36000
12 | #F37500
13 | #EC5900
14 | #EF6C00
15 | #E65100
16 | #f57c00
17 | #e65100
18 | @android:color/black
19 | @android:color/white
20 | @color/colorAccent
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-zh-rTW/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 拒绝位置服务,意味着将不能进行低能量扫描。
4 | 本应用需要在其 AndroidManifest.xml 文件中有 android.permission.ACCESS_COARSE_LOCATION 或 android.permission.ACCESS_FINE_LOCATION!
5 | 请点按”权限“按钮,启用”定位“,然后按两次后退。
6 | Android Marshmallow (6.0+) 需要定位权限才能扫描蓝牙设备。请接受以允许定位权限。
7 | Android Marshmallow (6.0+) 需要定位权限才能扫描蓝牙设备。\n\nMarshmallow 也需要定位服务,才能改进蓝牙设备发现。尽管本应用不需要,但建议您将定位服务打开,以获得更好的设备发现能力。\n\n请接受,以允许使用定位权限和定位服务。
8 | Android Marshmallow (6.0+) 需要定位服务才能使用改进的蓝牙设备扫描功能。尽管不需要,但建议将定位服务打开,以提高设备发现能力。
9 | 请启用定位服务,然后按后退。
10 | 好
11 | 拒绝
12 | 接受
13 |
--------------------------------------------------------------------------------
/app/src/main/lib/android-ripple-background/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Yao Yu
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2016 Tango Agency
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-zh-rCN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 如果拒絕位置資訊存取權限,則無法使用低功耗掃描功能。
4 | 此應用程式的 AndroidManifest.xml 中必須有 android.permission.ACCESS_COARSE_LOCATION 或 android.permission.ACCESS_FINE_LOCATION!
5 | 請按一下 [權限] 按鈕,然後啟用定位功能,最後按返回兩次。
6 | Android Marshmallow (6.0+) 需要位置權限才能搜尋藍牙裝置。請按下 [接受] 以便授予位置權限。
7 | Android Marshmallow (6.0+) 需要應用程式的位置權限才能搜尋藍牙裝置。\n\nMarshmallow 也需要定位服務才能提高藍牙裝置搜尋能力。雖然這並非應用程式的必要選項,但還是建議您啟用這項功能,以便提高裝置搜尋能力。\n\n請按下 [接受] 以便授予位置權限和定位服務權限。
8 | Android Marshmallow (6.0+) 需要定位服務才能提高藍牙裝置掃描能力。雖然這並非必要選項,但還是建議您啟用定位服務,以便提高裝置搜尋能力。
9 | 請啟用定位服務,然後按返回。
10 | 好
11 | 拒絕
12 | 接受
13 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/MoveUpBehaviour.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen;
2 |
3 | import android.content.Context;
4 | import androidx.coordinatorlayout.widget.CoordinatorLayout;
5 | import com.google.android.material.snackbar.Snackbar;
6 | import android.util.AttributeSet;
7 | import android.view.View;
8 | import android.widget.LinearLayout;
9 |
10 | @SuppressWarnings("unused")
11 | public class MoveUpBehaviour extends CoordinatorLayout.Behavior {
12 | public MoveUpBehaviour(Context context, AttributeSet attrs) {
13 | super(context, attrs);
14 | }
15 |
16 | @Override
17 | public boolean layoutDependsOn(CoordinatorLayout parent, LinearLayout child, View dependency) {
18 | return dependency instanceof Snackbar.SnackbarLayout;
19 | }
20 |
21 | @Override
22 | public boolean onDependentViewChanged(CoordinatorLayout parent, LinearLayout child, View dependency) {
23 | float translationY = Math.min(0, dependency.getTranslationY() - dependency.getHeight());
24 | child.setTranslationY(translationY);
25 | return true;
26 | }
27 | }
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/scan.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/bluetooth_disconnect.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
16 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-ko/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 위치 서비스를 사용하지 않으면 저전력 스캔이 불가능합니다.
4 | 앱의 AndroidManifest.xml 안에 android.permission.ACCESS_COARSE_LOCATION 또는 android.permission.ACCESS_FINE_LOCATION이 필요합니다!
5 | 허용 버튼을 클릭하고 위치 서비스를 켠 후 뒤로 가기를 두 번 누르세요.
6 | Android Marshmallow(6.0+)가 블루투스 기기를 스캔하려면 위치 서비스를 허용해야 합니다. 위치 서비스 허용을 선택해주세요.
7 | Android Marshmallow(6.0+)가 블루투스 기기를 스캔하려면 위치 서비스를 허용해야 합니다.\n\n또한 Marshmallow가 블루투스 기기 스캔 성능을 향상시키려면 위치 서비스가 필요합니다. 이 앱에서 반드시 필요하지는 않으나 스캔 성능 향상에 권장합니다.\n\n위치 서비스 허용 및 서비스 사용을 선택해주세요.
8 | Android Marshmallow(6.0+)가 블루투스 기기를 보다 정확히 스캔하려면 위치 서비스를 허용해야 합니다. 이 앱에서 반드시 필요하지는 않으나 스캔 성능 향상에 권장합니다.
9 | 위치 서비스를 켠 후 뒤로 가기를 누르세요.
10 | 확인
11 | 허용 안함
12 | 허용
13 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-ja/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 位置情報へのアクセスを許可しない場合、省エネルギーのスキャン機能はご利用いただけません。
4 | android.permission.ACCESS_COARSE_LOCATIONまたはandroid.permission.ACCESS_FINE_LOCATIONがアプリのAndroidManifest.xmlに含まれている必要があります。
5 | パーミッションボタンをクリックしてから位置情報をオンにし、2回押して戻ります。
6 | Android Marshmallow (6.0+)では、Bluetooth端末をスキャンする際に位置情報のパーミッション(許可)が必要となります。必ず許可するようにしてください。
7 | Android Marshmallow (6.0+)では、アプリ内でBluetooth端末をスキャンする際に位置情報のパーミッション(許可)が必要となります。\n\nMarshmallowではさらに、Bluetooth端末をより検出しやすくするため、位置情報サービスの使用が求められます。位置情報サービスはアプリ内では必須ではありませんが、端末を検出しやすくするため使用が推奨されています。\n\n位置情報のパーミッションとサービスを許可するようにしてください。
8 | Android Marshmallow (6.0+)では、Bluetooth省エネ端末のスキャンの向上のため、位置情報サービスが必要となります。端末の検出をより行いやすくするため、位置情報サービスをオンにすることを強くお勧めします。
9 | 位置情報サービスをオンにしてから戻ってください。
10 | OK
11 | 拒否
12 | 許可
13 |
--------------------------------------------------------------------------------
/app/src/main/java/org/asteroidos/sync/connectivity/IService.java:
--------------------------------------------------------------------------------
1 | /*
2 | * AsteroidOSSync
3 | * Copyright (c) 2023 AsteroidOS
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 |
19 | package org.asteroidos.sync.connectivity;
20 |
21 | /**
22 | * Every Service of Sync has to implement the {@link IService} interface.
23 | * A service is a module that either processes information that is exchanged
24 | * with the watch or is interested in knowing when the watch is connected and
25 | * when the watch is disconnected,
26 | * ({@link IService#sync()}) is called when the watch is connected.
27 | * ({@link IService#unsync()}) is called when the watch is disconnected.
28 | */
29 | public interface IService {
30 | void sync();
31 | void unsync();
32 | }
33 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/weather.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
14 |
17 |
20 |
23 |
--------------------------------------------------------------------------------
/app/src/main/java/org/asteroidos/sync/connectivity/IConnectivityService.java:
--------------------------------------------------------------------------------
1 | /*
2 | * AsteroidOSSync
3 | * Copyright (c) 2023 AsteroidOS
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 |
19 | package org.asteroidos.sync.connectivity;
20 |
21 | import java.util.HashMap;
22 | import java.util.UUID;
23 |
24 | /**
25 | * A connectivity service is a module that can exchange data with the watch. It has to implement {@link IService}
26 | * and additional functions regarding connectivity from {@link IConnectivityService}.
27 | */
28 | public interface IConnectivityService extends IService {
29 | enum Direction{
30 | FROM_WATCH,
31 | TO_WATCH
32 | }
33 |
34 | HashMap getCharacteristicUUIDs();
35 |
36 | UUID getServiceUUID();
37 | }
38 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/app/src/main/lib/powerampapi/poweramp_api_lib/proguard.cfg:
--------------------------------------------------------------------------------
1 | -optimizationpasses 5
2 | -dontusemixedcaseclassnames
3 | -dontskipnonpubliclibraryclasses
4 | -dontpreverify
5 | -verbose
6 | -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
7 |
8 | -keep public class * extends android.app.Activity
9 | -keep public class * extends android.app.Application
10 | -keep public class * extends android.app.Service
11 | -keep public class * extends android.content.BroadcastReceiver
12 | -keep public class * extends android.content.ContentProvider
13 | -keep public class * extends android.app.backup.BackupAgentHelper
14 | -keep public class * extends android.preference.Preference
15 | -keep public class com.android.vending.licensing.ILicensingService
16 |
17 | -keepclasseswithmembernames class * {
18 | native ;
19 | }
20 |
21 | -keepclasseswithmembers class * {
22 | public (android.content.Context, android.util.AttributeSet);
23 | }
24 |
25 | -keepclasseswithmembers class * {
26 | public (android.content.Context, android.util.AttributeSet, int);
27 | }
28 |
29 | -keepclassmembers class * extends android.app.Activity {
30 | public void *(android.view.View);
31 | }
32 |
33 | -keepclassmembers enum * {
34 | public static **[] values();
35 | public static ** valueOf(java.lang.String);
36 | }
37 |
38 | -keep class * implements android.os.Parcelable {
39 | public static final android.os.Parcelable$Creator *;
40 | }
41 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/app_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
12 |
19 |
20 |
29 |
30 |
31 |
35 |
36 |
--------------------------------------------------------------------------------
/app/src/main/lib/powerampapi/poweramp_api_lib/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | poweramp_api_lib
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.andmore.ResourceManagerBuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.andmore.PreCompilerBuilder
15 |
16 |
17 |
18 |
19 | com.android.ide.eclipse.adt.ResourceManagerBuilder
20 |
21 |
22 |
23 |
24 | com.android.ide.eclipse.adt.PreCompilerBuilder
25 |
26 |
27 |
28 |
29 | org.eclipse.jdt.core.javabuilder
30 |
31 |
32 |
33 |
34 | com.android.ide.eclipse.adt.ApkBuilder
35 |
36 |
37 |
38 |
39 | org.eclipse.andmore.ApkBuilder
40 |
41 |
42 |
43 |
44 |
45 | org.eclipse.andmore.AndroidNature
46 | com.android.ide.eclipse.adt.AndroidNature
47 | org.eclipse.jdt.core.javanature
48 |
49 |
50 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/parallax/ParallaxFragment.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.parallax;
2 |
3 | import android.os.Bundle;
4 | import androidx.annotation.FloatRange;
5 | import androidx.annotation.Nullable;
6 | import androidx.fragment.app.Fragment;
7 | import android.view.View;
8 | import android.view.ViewGroup;
9 |
10 | import java.util.LinkedList;
11 | import java.util.Queue;
12 |
13 | public class ParallaxFragment extends Fragment implements Parallaxable {
14 | @Nullable
15 | private Parallaxable parallaxLayout;
16 |
17 | @Override
18 | public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
19 | parallaxLayout = findParallaxLayout(view);
20 | }
21 |
22 | public static Parallaxable findParallaxLayout(View root) {
23 | Queue queue = new LinkedList<>();
24 | queue.add(root);
25 | while (!queue.isEmpty()) {
26 | View child = queue.remove();
27 | if (child instanceof Parallaxable) {
28 | return (Parallaxable) child;
29 | } else if (child instanceof ViewGroup) {
30 | ViewGroup viewGroup = (ViewGroup) child;
31 | for (int i = viewGroup.getChildCount() - 1; i >= 0; i--) {
32 | queue.add(viewGroup.getChildAt(i));
33 | }
34 | }
35 | }
36 | return null;
37 | }
38 |
39 | @Override
40 | public void setOffset(@FloatRange(from = -1.0, to = 1.0) float offset) {
41 | if (parallaxLayout != null) {
42 | parallaxLayout.setOffset(offset);
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/.travis.yml:
--------------------------------------------------------------------------------
1 | language: android
2 |
3 | jdk:
4 | - oraclejdk8
5 |
6 | android:
7 | components:
8 | - tools
9 | - tools
10 | - platform-tools
11 | - build-tools-24.0.3
12 | - android-24
13 | - extra-google-google_play_services
14 | - extra-google-m2repository
15 | - extra-android-m2repository
16 |
17 | licenses:
18 | - '.+'
19 |
20 | before_cache:
21 | - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
22 | - rm -fr $HOME/.gradle/caches/*/plugin-resolution/
23 |
24 | cache:
25 | directories:
26 | - $HOME/.m2
27 | - $HOME/.gradle
28 |
29 | before_install:
30 | - mkdir "$ANDROID_HOME/licenses" || true
31 | - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_HOME/licenses/android-sdk-license"
32 | - echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_HOME/licenses/android-sdk-preview-license"
33 |
34 | notifications:
35 | slack:
36 | secure: qIOOj57yVyinyTs9SinZmp/aVN5Or/9LDg+l9SYMqVCaqM9zDk7s1/m/L7VNPdWCuWOzLf9g1+0ReBcwZ6vh+HWBQ4T1V4HQd09whhUGyW9kMj3BKE0gWpIJLYKuhM551auv3FVzTp3u27q4W0zgiXB8qHWatTQu9rcPumG+IJaZD1uHsbhrQq0RLD8n8hWjQAdkRKRtSo4UR55sTK35uGRZbMFcyJSiStBXRP43w2kTR1MxIst4r9NeOx/sjebBQ/XxabKJgqAHhue80O3Cy8s0u59NDHOMpqJOu00cdKbtmhePQsY0FUl5/689Xdc+bDs3OcwGWbokaFEjXLwA1De+CIz0NMjgdtyHIbEGWcYav8jujke4wYaAtQRPgKHtVL9EpIUX07jPznstRNV8T3H1qrf2S5xHW6elZ7nLOnYuDKsgETmEuDQLAg8ibYQTF4zNBYGFwvC3GOJCqCu+o40OwmFghyohmXxSmo8Cg019V/hOtmYThaFcyDQhN8QGkUSqHrjDNRxyyye2JHvU+bJlTshonZlPh2gM9NA9Tf/3fMEobtnA5XYurntj43UhdZ4HdsYjbrFhbOrXEBRx1mG8gcCFgexz/3E9wq7GN0fqm6LMB8radqUbP0hAd2cADlN9suCWWLVnufLAiS5iqo55M2e9u749p+e+ESCLXIo=
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/bluetooth_connect.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
12 |
16 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Denying location access means low-energy scanning will not work.
4 | App needs android.permission.ACCESS_COARSE_LOCATION or android.permission.ACCESS_FINE_LOCATION in its AndroidManifest.xml!
5 | Please click the Permissions button, then enable Location, then press back twice.
6 | Android Marshmallow (6.0+) requires Location Permission to be able to scan for Bluetooth devices. Please accept to allow Location Permission.
7 | Android Marshmallow (6.0+) requires Location Permission to the app to be able to scan for Bluetooth devices.
8 |
9 | Marshmallow also requires Location Services to improve Bluetooth device discovery. While it is not required for use in this app, it is recommended to better discover devices.
10 |
11 | Please accept to allow Location Permission and Services.
12 | Android Marshmallow (6.0+) requires Location Services for improved Bluetooth device scanning. While it is not required, it is recommended that Location Services are turned on to improve device discovery.
13 | Please enable Location Services then press back.
14 | OK
15 | Deny
16 | Accept
17 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-nl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Zonder locatietoegang werkt Low Energy-scannen niet.
4 | App vereist android.permission.ACCESS_COARSE_LOCATION of android.permission.ACCESS_FINE_LOCATION in AndroidManifest.xml!
5 | Klik op de knop Toestemmingen, schakel Locatie in en druk vervolgens tweemaal op terug.
6 | Android Marshmallow (6.0+) vereist Locatietoestemming om te scannen naar Bluetooth-apparaten. Accepteer om Locatietoestemming toe te staan.
7 | Android Marshmallow (6.0+) vereist Locatietoestemming voor de app om te scannen naar Bluetooth-apparaten.\n\nMarshmallow vereist ook Locatieservices om het detecteren van Bluetooth-apparaten te verbeteren. Het is niet vereist voor gebruik in de app, het wordt wel aanbevolen om apparaten beter te detecteren.\n\nAccepteer om Locatietoestemming- en services toe te staan.
8 | Android Marshmallow (6.0+) vereist Locatieservices om beter Bluetooth-apparaten te kunnen detecteren. We raden de inschakeling van Locatieservices aan om apparaatdetectie te verbeteren.
9 | Schakel Locatieservices in en druk op terug.
10 | OK
11 | Afwijzen
12 | Accepteren
13 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-nn/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Hvis du avslår stedstjenester, vil du ikke kunne bruke enhetsoppdagelse på lav energi.
4 | Appen trenger android.permission.ACCESS_COARSE_LOCATION eller android.permission.ACCESS_FINE_LOCATION i AndroidManifest.xml!
5 | Vennligst klikk på knappen Tillatelser, deretter aktiver Sted og trykk tilbake to ganger.
6 | Android Marshmallow (6.0+) krever Stedstjenester for å kunne se etter andre Bluetooth-enheter. Vennligst godta å bruke Stedstjenester.
7 | Android Marshmallow (6.0+) krever Stedstillatelse for å kunne se etter andre Bluetooth-enheter.\n\nMarshmallow krever også Stedstjenester for å forbedre Bluetooth-scanning. Mens det imidlertid ikke er påkrevd for å bruke denne applikasjonen, er det anbefalt for bedre oppdagelse av andre enheter.\n\nVennligst godta å bruke Stedstjenester.
8 | Android Marshmallow (6.0+) krever Stedstjenester for forbedret Bluetooth-scanning. Mens det imidlertid ikke er påkrevd, er det anbefalt å slå denne innstillingen på for å forbedre enhetsoppdagelse.
9 | Vennligst tillat Stedstjenester og så trykk tilbake.
10 | OK
11 | Avslå
12 | Godta
13 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_app_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
17 |
18 |
25 |
26 |
31 |
32 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-da/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Hvis du nægter adgang til placering, virker lavenergiscanning ikke.
4 | Appen har brug for android.permission.ACCESS_COARSE_LOCATION eller android.permission.ACCESS_FINE_LOCATION i dens AndroidManifest.xml!
5 | Klik på knappen Tilladelser, aktiver Placering, og tryk så to gange på tilbage.
6 | Android Marshmallow (6.0+) kræver placeringstilladelse for at kunne scanne for Bluetooth-enheder. Accepter for at give placeringstilladelse.
7 | Android Marshmallow (6.0+) kræver placeringstilladelse, for at appen kan scanne for Bluetooth-enheder.\n\nMarshmallow kræver også placeringsservices for at forbedre opdagelse af Bluetooth-enheder. Selvom det ikke kræves til brug i denne app, anbefales det for bedre at kunne opdage enheder.\n\nAccepter for at give placeringstilladelse og tillade placeringsservices.
8 | Android Marshmallow (6.0+) kræver placeringsservices for at forbedre scanning for Bluetooth-enheder. Det er ikke obligatorisk, men det anbefales at slå placeringsservices til for at forbedre opdagelse af enheder.
9 | Aktiver placeringsservices, og tryk så på tilbage.
10 | OK
11 | Nægt
12 | Accepter
13 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/listeners/scrollListeners/ParallaxScrollListener.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.listeners.scrollListeners;
2 |
3 | import androidx.annotation.Nullable;
4 | import androidx.fragment.app.Fragment;
5 |
6 | import io.github.dreierf.materialintroscreen.SlideFragment;
7 | import io.github.dreierf.materialintroscreen.adapter.SlidesAdapter;
8 | import io.github.dreierf.materialintroscreen.listeners.IPageScrolledListener;
9 | import io.github.dreierf.materialintroscreen.parallax.Parallaxable;
10 |
11 | public class ParallaxScrollListener implements IPageScrolledListener {
12 | private SlidesAdapter adapter;
13 |
14 | public ParallaxScrollListener(SlidesAdapter adapter) {
15 | this.adapter = adapter;
16 | }
17 |
18 | @SuppressWarnings("ConstantConditions")
19 | @Override
20 | public void pageScrolled(int position, float offset) {
21 | if (position != adapter.getCount()) {
22 | Fragment fragment = adapter.getItem(position);
23 | Fragment fragmentNext = getNextFragment(position);
24 |
25 | if (fragment != null && fragment instanceof Parallaxable) {
26 | ((Parallaxable) fragment).setOffset(offset);
27 | }
28 |
29 | if (fragmentNext != null && fragment instanceof Parallaxable) {
30 | ((Parallaxable) fragmentNext).setOffset(offset - 1);
31 | }
32 | }
33 | }
34 |
35 | @Nullable
36 | private SlideFragment getNextFragment(int position) {
37 | if (position < adapter.getLastItemPosition()) {
38 | return adapter.getItem(position + 1);
39 | }
40 | return null;
41 | }
42 | }
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-sv/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Om du nekar tillgång till platstjänster fungerar inte low energy-skanning.
4 | Appen behöver android.permission.ACCESS_COARSE_LOCATION eller android.permission.ACCESS_FINE_LOCATION i sitt AndroidManifest.xml!
5 | Vänligen tryck på Behörigheter-knappen, aktivera Plats och tryck sedan på Tillbaka två gånger.
6 | Android Marshmallow (6.0+) kräver Platsåtkomst för att kunna skanna efter Bluetooth-enheter. Vänligen acceptera för att tillåta Platsåtkomst.
7 | Android Marshmallow (6.0+) kräver Platsåtkomst för att appen ska kunna skanna efter Bluetooth-enhterer.\n\nMarshmallow behöver Platstjänster för att förbättra upptäckt av Bluetooth-enheter. Det är inget krav för att appen ska fungea, men rekommenderas för att bättre upptäcka andra enheter.\n\nVänligen acceptera för att tillåta Platsåtkomst och Platstjänster.
8 | Android Marshmallow (6.0+) använder Platstjänster för att förbättra skanning efter Bluetooth-enheter. Det är inget krav för att appen ska fungera, men det rekommenderas att Platstjänster är aktiverat för att bättre upptäcka andra enheter.
9 | Vänligen aktivera Platstjänster och knacka därefter på tillbaka.
10 | OK
11 | Neka
12 | Godkänn
13 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/SlideFragmentBuilder.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen;
2 |
3 | import androidx.annotation.ColorRes;
4 | import androidx.annotation.DrawableRes;
5 |
6 | @SuppressWarnings({"unused", "WeakerAccess"})
7 | public class SlideFragmentBuilder {
8 | int backgroundColor;
9 | int buttonsColor;
10 | String title;
11 | String description;
12 | String[] neededPermissions;
13 | String[] possiblePermissions;
14 | int image;
15 |
16 | public SlideFragmentBuilder backgroundColor(@ColorRes int backgroundColor) {
17 | this.backgroundColor = backgroundColor;
18 | return this;
19 | }
20 |
21 | public SlideFragmentBuilder buttonsColor(@ColorRes int buttonsColor) {
22 | this.buttonsColor = buttonsColor;
23 | return this;
24 | }
25 |
26 | public SlideFragmentBuilder title(String title) {
27 | this.title = title;
28 | return this;
29 | }
30 |
31 | public SlideFragmentBuilder description(String description) {
32 | this.description = description;
33 | return this;
34 | }
35 |
36 | public SlideFragmentBuilder neededPermissions(String[] neededPermissions) {
37 | this.neededPermissions = neededPermissions;
38 | return this;
39 | }
40 |
41 | public SlideFragmentBuilder possiblePermissions(String[] possiblePermissions) {
42 | this.possiblePermissions = possiblePermissions;
43 | return this;
44 | }
45 |
46 | public SlideFragmentBuilder image(@DrawableRes int image) {
47 | this.image = image;
48 | return this;
49 | }
50 |
51 | public SlideFragment build() {
52 | return SlideFragment.createInstance(this);
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/app/src/main/java/org/asteroidos/sync/services/AutostartService.java:
--------------------------------------------------------------------------------
1 | /*
2 | * AsteroidOSSync
3 | * Copyright (c) 2023 AsteroidOS
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 |
19 | package org.asteroidos.sync.services;
20 |
21 | import android.content.BroadcastReceiver;
22 | import android.content.Context;
23 | import android.content.Intent;
24 | import android.content.SharedPreferences;
25 |
26 | import org.asteroidos.sync.MainActivity;
27 |
28 | import java.util.Objects;
29 |
30 | public class AutostartService extends BroadcastReceiver {
31 | public void onReceive(Context context, Intent intent)
32 | {
33 | if(Objects.equals(intent.getAction(), Intent.ACTION_BOOT_COMPLETED)) {
34 | SharedPreferences prefs = context.getSharedPreferences(MainActivity.PREFS_NAME, Context.MODE_PRIVATE);
35 | String defaultDevMacAddr = prefs.getString(MainActivity.PREFS_DEFAULT_MAC_ADDR, "");
36 |
37 | if (defaultDevMacAddr.length() > 0) {
38 | Intent mSyncServiceIntent = new Intent(context, SynchronizationService.class);
39 | context.startService(mSyncServiceIntent);
40 | }
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-pt-rBR/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Recusar o acesso à localização fará com que o escaneamento com pouca energia não funcione.
4 | O aplicativo precisa de android.permission.ACCESS_COARSE_LOCATION ou android.permission.ACCESS_FINE_LOCATION iem seu AndroidManifest.xml.
5 | Clique no botão Permissões, ative a Localização e pressione Voltar duas vezes.
6 | O Android Marshmallow (6.0+) requer a Permissão de localização para poder escanear dispositivos Bluetooth. Aceite para ativar a Permissão de localização.
7 | O Android Marshmallow (6.0+) requer a Permissão de localização para poder escanear dispositivos Bluetooth.\n\nO Marshmallow também requer Serviços de localização para melhorar a detecção de dispositivos Bluetooth. Embora não seja necessário para usar neste aplicativo, é recomendado para detectar melhor os dispositivos.\n\nAceite para ativar Permissão e serviços de localização.
8 | O Android Marshmallow (6.0+) requer Serviços de localização para um melhor escaneamento de dispositivos Bluetooth. Embora não seja necessário, é recomendado que os Serviços de localização estejam ativados para uma melhor detecção de dispositivos.
9 | Ative Serviços de localização e pressione Voltar.
10 | OK
11 | Recusar
12 | Aceitar
13 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-cs/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Zakázání přístupu ke službám zjišťování polohy znamená, že nebude fungovat nízkoenergetické vyhledávání.
4 | Aplikace vyžaduje v souboru AndroidManifest.xml oprávnění android.permission.ACCESS_COARSE_LOCATION nebo android.permission.ACCESS_FINE_LOCATION!
5 | Klikněte na tlačítko Oprávnění, povolte položku Poloha a stiskněte dvakrát tlačítko Zpět.
6 | Systém Android Marshmallow (6.0+) požaduje k vyhledávání zařízení Bluetooth oprávnění Poloha. Kliknutím na tlačítko Přijmout povolte oprávnění Poloha.
7 | Systém Android Marshmallow (6.0+) požaduje, aby aplikace, která vyhledává zařízení Bluetooth, měla oprávnění Poloha.\n\nSystém Marshmallow rovněž požaduje ke zlepšení zjišťování zařízení Bluetooth služby zjišťování polohy. Tyto služby nejsou nutné k používání této aplikace, ale jsou doporučeny k lepšímu zjišťování zařízení.\n\nKliknutím na tlačítko Přijmout povolte oprávnění Poloha a služby zjišťování polohy.
8 | Systém Android Marshmallow (6.0+) požaduje ke zlepšení vyhledávání zařízení Bluetooth služby zjišťování polohy. Tyto služby nejsou nutné, ale je doporučeno je zapnout, aby bylo možné zlepšit zjišťování zařízení.
9 | Povolte služby zjišťování polohy a stiskněte tlačítko Zpět.
10 | OK
11 | Odmítnout
12 | Přijmout
13 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-de/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Wenn Sie den Zugriff auf Standortdienste verweigern, können mit BLE keine Geräte erkannt werden.
4 | Die App erfordert android.permission.ACCESS_COARSE_LOCATION oder android.permission.ACCESS_FINE_LOCATION in AndroidManifest.xml!
5 | Bitte klicken Sie auf den Button der Genehmigungen, erlauben Sie den Zugriff auf die Standortdienste und drücken Sie dann zweimal auf die Zurück-Taste.
6 | Bei Android Marshmallow (ab 6.0) ist der Zugriff auf Standortdienste erforderlich, um Bluetooth-Geräte zu finden. Bitte gewähren Sie den Zugriff.
7 | Bei Android Marshmallow (ab 6.0) ist der Zugriff auf Standortdienste erforderlich, um Bluetooth-Geräte zu finden.\n\nBei Marshmallow ist der Zugriff auf Standortdienste hilfreich, jedoch nicht zwingend für die Verwendung der App erforderlich. Er wird empfohlen, um Geräte besser zu erkennen.\n\nBitte gewähren Sie den Zugriff auf Standortdienste.
8 | Bei Android Marshmallow (ab 6.0) ist der Zugriff auf Standortdienste hilfreich, jedoch nicht zwingend für die Verwendung der App erforderlich. Er wird empfohlen, um Geräte über Bluetooth besser zu erkennen.
9 | Bitte gewähren Sie den Zugriff auf Standortdienste und drücken Sie dann auf die Zurück-Taste.
10 | OK
11 | Ablehnen
12 | Akzeptieren
13 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-ru/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Если запретить доступ к геоданным, BLE-сканирование перестанет работать.
4 | Для приложения нужно указать android.permission.ACCESS_COARSE_LOCATION или android.permission.ACCESS_FINE_LOCATION в файле AndroidManifest.xml!
5 | Нажмите кнопку «Разрешения», включите определение местоположения, а затем дважды нажмите «Назад».
6 | Чтобы можно было сканировать устройства с Bluetooth, системе Android Marshmallow (6.0 и более поздней версии) требуется доступ к геоданным. Нажмите «Принять», чтобы разрешить доступ.
7 | Чтобы приложение сканировало устройства с Bluetooth, системе Android Marshmallow (6.0 и более поздней версии) требуется доступ к геоданным.\n\nТакже для улучшенного обнаружения устройств с Bluetooth системе нужно определение местоположения. Когда оно не требуется в приложении, рекомендуем его использовать.\n\nНажмите «Принять», чтобы разрешить доступ к геоданным и включить определение местоположения.
8 | Для улучшенного сканирования устройств с Bluetooth системе Android Marshmallow (6.0 и более поздней версии) нужно определение местоположения. Когда эта функция не требуется, рекомендуем включить ее, чтобы улучшить обнаружение устройств.
9 | Включите определение местоположения и нажмите «Назад».
10 | ОК
11 | Отклонить
12 | Принять
13 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/.travis.yml:
--------------------------------------------------------------------------------
1 | language: android
2 | before_script: ./prebuild.sh
3 | android:
4 | components:
5 | - tools
6 | - tools
7 | - android-26
8 | - doc
9 | - platform-tools
10 | script:
11 | - ./gradlew tester:clean tester:testReleaseUnitTest fullBuild
12 | cache:
13 | directories:
14 | - $HOME/.gradle/caches/
15 | - $HOME/.gradle/wrapper/
16 | before_install:
17 | - echo y | android update sdk --no-ui --all --filter build-tools-26.0.2
18 | jdk:
19 | - oraclejdk8
20 | env:
21 | global:
22 | - secure: pSUSE9dtc3zPXivupb+TuwfjBBfig/tZP8EW8HOErM/Jc8b2Dr8e0+daXEMuHVPyqOM8TVwWhdWViLgznhz0N9oO8tWBSu7bweJOyZCczulpKGbeheLgCTJ2zJib6rW5dPZ7pkzb5AViKFKVU0lhZqDHtQN6ja6dddFXPkEJMraKduVfTvFPMH5n3te1yINiZX5KaMann09DmDLGHVSANtdX2U0iLVghpZoS09kOTsShUhk4YxOj2BuKzs6wigruursSsVp1+E/SbsJ0FBQiYAahzZgkK1VmUexgn0EyAX42DJMxQKw576mxxtNtFDy4gGRCUq77+CmydHZM/j3zi6cu7tOFSm5r5+ayzy1w/vBa8RE+vBs4S3aH0LICdum/+W1t+ZLjXd8PFTU7O2H5xUeF05DLBYBmke9B9ePBxo4Lj/54wuLXuJDbGPk3w2GWqdM84ltQy+6b5zHDArgC7ByvIV+0K1He+S1roqO7ALLrS9Ceu0vcqJE4ii9gAkUG7OytVJREU+QdACCgSVAU4P8eVMcNuf1roaycDEsGs3GBaBnk9TDkW/cCgD3m/YzKay4YVn4YYWUAYu4VCtJUtCez7HY4Ini9CTyVnhA0TUV0hyf+Ha8CLr2k22BoEjX6yiOwDQNZEKxxnQcd/VG9uP7+Obt83fpAnoWWIubJ2+8=
23 | - secure: kFfBXa63iOlSmi1i/WeOJhr6/ON1VRSM4e7rxw5Fmk6LaB5snc9kZpxsaugPPFKxqZEu8WJ6wHZznlPUWGQt+58c3yeRuGMqbaCMWiU731m9OHMvdc20SLFZKWLdv16XUXlVSb//0eT3MHgrF9u031QBWIfpIDVMoLIeg1WFj2KxLTun9W9lPEgOOXacI7xAVSmbCZCh07Szus0yT80Ivs5xU0CGYkmff6S+IORTCD2YKfTB4eFPKgFhkRtvVIYl3UMnnzBhlf/6+xShwIeyy7Em4Sh/x2ig6wFHo5nXZ7chCnM3oJ4qDbIXtkdpmIeA6Ya1HVeV+INDyEGinrd48brCAODjMXhj7olI9bmcNwSUgyu7ZEz4zEFbBaN1XY2uK0RBWCDjPsQZ1o/ERoRr0Ao5IiK5nVB8wLZ5/fG5dMjV8cfsqx/ix4qI8i3/AVg9IjazTbUvodv8o8gOGblSMIj8ddzHFvYWEL3iIV9hxJmSC2C2B7hnHF01ALjzt9cuiF9+o0NQTzFjBuqui7OLQrePimVGioX5NJ3/p9B3+QvassQ16TUH3au55OTtI0Vqt75lwwB376oIA4+Yh/lzByKay0+Py3fBAZn0ccs4B3YAJpyiA6kr4y0BkZ9fHD/SD8Zdb+eLGD0rQb0dsSQOdSU8QxJwM0oXwfFQSvm2yb8=
24 |
--------------------------------------------------------------------------------
/app/src/main/java/org/asteroidos/sync/asteroid/IAsteroidDevice.java:
--------------------------------------------------------------------------------
1 | /*
2 | * AsteroidOSSync
3 | * Copyright (c) 2023 AsteroidOS
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 |
19 | package org.asteroidos.sync.asteroid;
20 |
21 | import org.asteroidos.sync.connectivity.IConnectivityService;
22 | import org.asteroidos.sync.connectivity.IServiceCallback;
23 |
24 | import java.util.HashMap;
25 | import java.util.UUID;
26 |
27 | public interface IAsteroidDevice {
28 | String name = "";
29 | String macAddress = "";
30 | int batteryPercentage = 0;
31 | boolean bonded = false;
32 |
33 | enum ConnectionState {
34 | STATUS_CONNECTED,
35 | STATUS_CONNECTING,
36 | STATUS_DISCONNECTED
37 | }
38 |
39 | ConnectionState getConnectionState();
40 |
41 | void send(UUID characteristic, byte[] data, IConnectivityService service);
42 | void registerBleService(IConnectivityService service);
43 | void unregisterBleService(UUID serviceUUID);
44 | void registerCallback(UUID characteristicUUID, IServiceCallback callback);
45 | void unregisterCallback(UUID characteristicUUID);
46 |
47 | IConnectivityService getServiceByUUID(UUID uuid);
48 | HashMap getServices();
49 | }
50 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-it/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Se rifiuti l\'accesso alla tua posizione, la scansione a basa potenza non funzionerà.
4 | L\'app necessita di android.permission.ACCESS_COARSE_LOCATION o android.permission.ACCESS_FINE_LOCATION in AndroidManifest.xml!
5 | Fare clic sul pulsante Autorizzazioni, abilitare Posizione e quindi premere due volte su Indietro.
6 | Android Marshmallow (6.0+) richiede l\'autorizzazione alla geolocalizzazione per eseguire la scansione dei dispositivi Bluetooth. Si prega di fornire tale autorizzazione.
7 | Android Marshmallow (6.0+) richiede l\'autorizzazione alla geolocalizzazione per eseguire la scansione dei dispositivi Bluetooth.\n\nMarshmallow richiede inoltre i servizi di localizzazione per migliorare la rilevazione dei dispositivi Bluetooth. Tale autorizzazione non è necessaria per l\'app, ma è consigliata per migliorare l\'individuazione dei dispositivi.\n\nSi prega di fornire l\'autorizzazione e di abilitare i servizi.
8 | Android Marshmallow (6.0+) richiede i servizi di localizzazione per migliorare la scansione dei dispositivi Bluetooth. È consigliabile, anche se non obbligatorio, abilitare questi servizi per migliorare la rilevazione dei dispositivi.
9 | Abilitare i servizi di localizzazione e quindi premere Indietro
10 | OK
11 | Rifiuta
12 | Accetta
13 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-es/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Si se deniega el acceso a la localización el escaneo de baja energía no funcionará.
4 | La aplicación necesita android.permission.ACCESS_COARSE_LOCATION o android.permission.ACCESS_FINE_LOCATION en su AndroidManifest.xml.
5 | Haz clic en el botón Permisos, activa la Localización y luego pulsa atrás dos veces.
6 | Android Marshmallow (6.0+) necesita permiso de localización para poder escanear en busca de dispositivos Bluetooth. Acepta este mensaje para permitir el permiso de localización.
7 | Android Marshmallow (6.0+) necesita permiso de localización para la aplicación para que se pueda escanear en busca de dispositivos Bluetooth.\n\nMarshmallow también necesita los servicios de localización para mejorar la detección de dispositivos Bluetooth. A pesar de que su uso no es obligatorio en esta aplicación, se recomienda para mejorar la detección de dispositivos.\n\nAcepta este mensaje para permitir el permiso y los servicios de localización.
8 | Android Marshmallow (6.0+) necesita los servicios de localización para el escaneo de dispositivos Bluetooth de baja energía. Se recomienda encarecidamente activar los servicios de localización para mejorar la detección de dispositivos.
9 | Activa los servicios de localización y luego pulsa atrás.
10 | Aceptar
11 | Denegar
12 | Aceptar
13 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/adapter/SlidesAdapter.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.adapter;
2 |
3 | import androidx.fragment.app.FragmentManager;
4 | import androidx.fragment.app.FragmentStatePagerAdapter;
5 | import android.view.ViewGroup;
6 |
7 | import java.util.ArrayList;
8 |
9 | import io.github.dreierf.materialintroscreen.SlideFragment;
10 |
11 | public class SlidesAdapter extends FragmentStatePagerAdapter {
12 | private ArrayList fragments = new ArrayList<>();
13 |
14 | public SlidesAdapter(FragmentManager fragmentManager) {
15 | super(fragmentManager);
16 | }
17 |
18 | @Override
19 | public SlideFragment getItem(int position) {
20 | return fragments.get(position);
21 | }
22 |
23 | @Override
24 | public Object instantiateItem(ViewGroup container, int position) {
25 | SlideFragment fragment = (SlideFragment) super.instantiateItem(container, position);
26 | fragments.set(position, fragment);
27 | return fragment;
28 | }
29 |
30 | @Override
31 | public int getCount() {
32 | return fragments.size();
33 | }
34 |
35 | public void addItem(SlideFragment fragment) {
36 | fragments.add(getCount(), fragment);
37 | notifyDataSetChanged();
38 | }
39 |
40 | public int getLastItemPosition() {
41 | return getCount() - 1;
42 | }
43 |
44 | public boolean isLastSlide(int position) {
45 | return position == getCount() - 1;
46 | }
47 |
48 | public boolean shouldFinish(int position) {
49 | return position == getCount() && getItem(getCount() - 1).canMoveFurther();
50 | }
51 |
52 | public boolean shouldLockSlide(int position) {
53 | SlideFragment fragment = getItem(position);
54 | return !fragment.canMoveFurther() || fragment.hasNeededPermissionsToGrant();
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-pl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Odrzucenie dostępu do lokalizacji spowoduje brak możliwości skanowania z ograniczonym poborem energii.
4 | Aplikacja potrzebuje android.permission.ACCESS_COARSE_LOCATION or android.permission.ACCESS_FINE_LOCATION in its AndroidManifest.xml!
5 | Proszę nacisnąć przycisk Pozwolenia, po czym włączyć opcję Lokalizacja i nacisnąć Wróć dwa razy.
6 | Android Marshmallow (6.0+) potrzebuje zgody na dostęp do lokalizacji, aby móc skanować urządzenia Bluetooth. Proszę wyrazić zgodę na dostęp do lokalizacji.
7 | Android Marshmallow (6.0+) potrzebuje zgody na dostęp do lokalizacji, aby móc skanować urządzenia Bluetooth.\n\nMarshmallow również potrzebuje dostępu do usług lokalizacyjnych, aby zapewnić lepsze wyszukiwanie urządzeń Bluetooth. Wyrażenie zgody na dostęp do lokalizacji nie jest wymagane do korzystania z tej aplikacji, jednak zalecane, aby zapewnić lepsze wyszukiwanie urządzeń.\n\nProszę wyrazić zgodę na dostęp do lokalizacji i na usługi lokalizacyjne.
8 | Android Marshmallow (6.0+) potrzebuje zgody na dostęp do lokalizacji, aby zapewnić lepsze skanowanie urządzeń Bluetooth. Wyrażenie zgody na dostęp do lokalizacji nie jest wymagane, jednak zaleca się włączenie usług lokalizacyjnych, aby zapewnić lepsze wyszukiwanie urządzeń.
9 | Proszę włączyć Usługi lokalizacyjne, po czym nacisnąć \"Wróć\" dwa razy.
10 | OK
11 | Odmów
12 | Akceptuj
13 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-fr-rCA/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Refuser l\'accès de localisation signifie que le balayage à faible énergie ne fonctionnera pas.
4 | L\'application nécessite : android.permission.ACCESS_COARSE_LOCATION or android.permission.ACCESS_FINE_LOCATION in its AndroidManifest.xml!
5 | Veuillez appuyer sur la touche des permissions, ensuite activer la localisation, puis appuyer sur le retour deux fois.
6 | Android Marshmallow (6.0+) requiert la permission de localisation afin de pouvoir balayer pour des appareils Bluetooth. Veuillez accepter pour autoriser la permission de localisation.
7 | Android Marshmallow (6.0+) requiert la permission de localisation afin de pouvoir balayer pour des appareils Bluetooth.\n\nMarshmallow requiert aussi les services de localisation pour améliorer la découverte d\'appareils Bluetooth. Bien qu\'elle ne soit pas requise pour l\'utilisation de cette application, elle est recommandée afin de mieux découvrir des appareils.\n\nVeuillez accepter afin d\'autoriser la permission et les services de localisation.
8 | Android Marshmallow (6.0+) requiert les services de localisation pour le balayage amélioré d\'appareils Bluetooth. Il est recommandé que les services de localisation soient activés pour améliorer la découverte d\'appareils.
9 | Veuillez activer la localisation des services puis appuyez sur le retour.
10 | OK
11 | Refuser
12 | Accepter
13 |
--------------------------------------------------------------------------------
/app/src/main/lib/sweetblue/library/src/main/res/values-fr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Refuser l\'accès à la position empêche le fonctionnement de l\'analyse \"énergie basse\".
4 | L\'application doit android.permission.ACCESS_COARSE_LOCATION ou android.permission.ACCESS_FINE_LOCATION dans son AndroidManifest.xml !
5 | Cliquez sur le bouton Autorisations, autorisez les services de localisation puis appuyez deux fois sur Retour.
6 | Android Marshmallow (6.0+) demande l\'Autorisation des Services de localisation pour pouvoir rechercher des appareils Bluetooth. Veuillez autoriser les services de localisation.
7 | Android Marshmallow (6.0+) demande l\'autorisation des Services de localisation pour que l\'application puisse détecter les appareils Bluetooth.\n\nMarshmallow demande également l\'activation des Services de localisation pour améliorer la détection d\'appareils Bluetooth. Si l\'activation des services de localisation n\'est pas obligatoire, elle est conseillée pour améliorer la détection d\'appareils.\n\nVeuillez autoriser les Services de localisation.
8 | Android Marshmallow (6.0+) demande l\'autorisation des Services de localisation pour rechercher des appareils Bluetooth avec plus d\'efficacité. Si l\'activation des services de localisation n\'est pas obligatoire, elle est conseillée pour améliorer la détection d\'appareils.
9 | Activez les services de localisation puis appuyez sur Retour.
10 | OK
11 | Refuser
12 | Accepter
13 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/layout/fragment_slide.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
31 |
32 |
40 |
41 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/app/src/main/java/org/asteroidos/sync/fragments/AppListFragment.java:
--------------------------------------------------------------------------------
1 | /*
2 | * AsteroidOSSync
3 | * Copyright (c) 2023 AsteroidOS
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 |
19 | package org.asteroidos.sync.fragments;
20 |
21 | import android.content.Context;
22 | import android.os.Bundle;
23 |
24 | import androidx.annotation.NonNull;
25 | import androidx.annotation.Nullable;
26 | import androidx.fragment.app.Fragment;
27 | import android.view.LayoutInflater;
28 | import android.view.View;
29 | import android.view.ViewGroup;
30 | import android.widget.ListView;
31 |
32 | import org.asteroidos.sync.MainActivity;
33 | import org.asteroidos.sync.R;
34 | import org.asteroidos.sync.adapters.AppInfoAdapter;
35 |
36 | public class AppListFragment extends Fragment {
37 | AppInfoAdapter adapter;
38 | ListView listView;
39 | View placeholder;
40 |
41 | @Override
42 | public void onAttach(@NonNull Context context) {
43 | super.onAttach(context);
44 | adapter = new AppInfoAdapter(context, R.layout.app_list_item, MainActivity.appInfoList);
45 | adapter.restoreFilter();
46 | }
47 |
48 | @Override
49 | public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup parent, @Nullable Bundle savedInstanceState) {
50 | return inflater.inflate(R.layout.fragment_app_list, parent, false);
51 | }
52 |
53 | @Override
54 | public void onViewCreated(View view, Bundle savedInstanceState) {
55 | listView = view.findViewById(R.id.listview);
56 | listView.setAdapter(adapter);
57 |
58 | placeholder = view.findViewById(R.id.no_notification_placeholder);
59 | adapter.getFilter().filter("", count -> placeholder.setVisibility(count == 0 ? View.VISIBLE : View.INVISIBLE));
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/app/build.gradle.kts:
--------------------------------------------------------------------------------
1 | plugins {
2 | id("com.android.application")
3 | }
4 |
5 | android {
6 | compileSdk = 33
7 | buildToolsVersion = "30.0.3"
8 |
9 | defaultConfig {
10 | applicationId = "org.asteroidos.sync"
11 | minSdk = 24
12 | targetSdk = 33
13 | versionCode = 29
14 | versionName = "0.29"
15 | }
16 | buildTypes {
17 | named("release") {
18 | isMinifyEnabled = false
19 | proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
20 | }
21 | }
22 | sourceSets {
23 | named("main") {
24 | java {
25 | srcDir("src/main/lib/android-ripple-background/library/src/main/java/")
26 | srcDir("src/main/lib/material-intro-screen/material-intro-screen/src/main/java/")
27 | srcDir("src/main/lib/powerampapi/poweramp_api_lib/src/")
28 | }
29 | res {
30 | srcDir("src/main/lib/android-ripple-background/library/src/main/res/")
31 | srcDir("src/main/lib/material-intro-screen/material-intro-screen/src/main/res/")
32 | srcDir("src/main/lib/powerampapi/poweramp_api_lib/res/")
33 | }
34 | }
35 | }
36 |
37 | compileOptions {
38 | sourceCompatibility = JavaVersion.VERSION_17
39 | targetCompatibility = JavaVersion.VERSION_17
40 | }
41 | lint {
42 | checkReleaseBuilds = true
43 | disable += "MissingTranslation"
44 | }
45 | namespace = "org.asteroidos.sync"
46 | }
47 |
48 | repositories {
49 | mavenCentral()
50 | maven("https://maven.google.com")
51 | maven("https://jitpack.io")
52 | }
53 |
54 | dependencies {
55 | implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
56 | testImplementation("junit:junit:4.13.2")
57 | implementation("androidx.appcompat:appcompat:1.6.1")
58 | implementation("androidx.legacy:legacy-support-v4:1.0.0")
59 | implementation("androidx.cardview:cardview:1.0.0")
60 | implementation("com.google.android.material:material:1.9.0")
61 | implementation("com.github.MagneFire:EasyWeather:1.3")
62 | implementation("com.google.code.gson:gson:2.10.1")
63 | implementation("org.osmdroid:osmdroid-android:6.1.16")
64 | implementation("no.nordicsemi.android.support.v18:scanner:1.6.0")
65 | implementation("no.nordicsemi.android:ble:2.7.2")
66 | }
67 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_device_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
25 |
26 |
27 |
33 |
34 |
41 |
42 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_position_picker.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
12 |
20 |
21 |
26 |
27 |
35 |
36 |
47 |
48 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/res/layout-land/fragment_slide.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
28 |
29 |
35 |
36 |
44 |
45 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | set DIRNAME=%~dp0
12 | if "%DIRNAME%" == "" set DIRNAME=.
13 | set APP_BASE_NAME=%~n0
14 | set APP_HOME=%DIRNAME%
15 |
16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
17 | set DEFAULT_JVM_OPTS=
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windows variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 |
53 | :win9xME_args
54 | @rem Slurp the command line arguments.
55 | set CMD_LINE_ARGS=
56 | set _SKIP=2
57 |
58 | :win9xME_args_slurp
59 | if "x%~1" == "x" goto execute
60 |
61 | set CMD_LINE_ARGS=%*
62 |
63 | :execute
64 | @rem Setup the command line
65 |
66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
67 |
68 | @rem Execute Gradle
69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
70 |
71 | :end
72 | @rem End local scope for the variables with windows NT shell
73 | if "%ERRORLEVEL%"=="0" goto mainEnd
74 |
75 | :fail
76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
77 | rem the _cmd.exe /c_ return code!
78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
79 | exit /b 1
80 |
81 | :mainEnd
82 | if "%OS%"=="Windows_NT" endlocal
83 |
84 | :omega
85 |
--------------------------------------------------------------------------------
/app/src/main/java/org/asteroidos/sync/utils/AppInfo.java:
--------------------------------------------------------------------------------
1 | package org.asteroidos.sync.utils;
2 |
3 | // TODO MIT license in GPL project, consider rewriting class
4 | // copied from https://github.com/jensstein/oandbackup, used under MIT license
5 |
6 | import android.graphics.Bitmap;
7 | import android.os.Parcel;
8 | import android.os.Parcelable;
9 |
10 | import androidx.annotation.NonNull;
11 |
12 | public class AppInfo implements Comparable, Parcelable {
13 |
14 | private final String label, packageName;
15 | private final boolean system, installed;
16 | private boolean checked, disabled;
17 |
18 | public Bitmap icon;
19 |
20 | AppInfo(String packageName, String label, boolean system, boolean installed) {
21 | this.label = label;
22 | this.packageName = packageName;
23 | this.system = system;
24 | this.installed = installed;
25 | }
26 |
27 | public String getPackageName() {
28 | return packageName;
29 | }
30 |
31 | public String getLabel() {
32 | return label;
33 | }
34 |
35 | public void setDisabled(boolean disabled) {
36 | this.disabled = disabled;
37 | }
38 |
39 | public boolean isDisabled() {
40 | return disabled;
41 | }
42 |
43 | public boolean isSystem() {
44 | return system;
45 | }
46 |
47 | public int compareTo(@NonNull AppInfo appInfo) {
48 | return label.compareToIgnoreCase(appInfo.getLabel());
49 | }
50 |
51 | @NonNull
52 | public String toString() {
53 | return label + " : " + packageName;
54 | }
55 |
56 | public int describeContents() {
57 | return 0;
58 | }
59 |
60 | public void writeToParcel(Parcel out, int flags) {
61 | out.writeString(label);
62 | out.writeString(packageName);
63 | out.writeBooleanArray(new boolean[]{system, installed, checked});
64 | out.writeParcelable(icon, flags);
65 | }
66 |
67 | public static final Parcelable.Creator CREATOR = new Parcelable.Creator<>() {
68 | public AppInfo createFromParcel(Parcel in) {
69 | return new AppInfo(in);
70 | }
71 |
72 | public AppInfo[] newArray(int size) {
73 | return new AppInfo[size];
74 | }
75 | };
76 |
77 | private AppInfo(Parcel in) {
78 | label = in.readString();
79 | packageName = in.readString();
80 | boolean[] bools = new boolean[4];
81 | in.readBooleanArray(bools);
82 | system = bools[0];
83 | installed = bools[1];
84 | checked = bools[2];
85 | icon = in.readParcelable(getClass().getClassLoader());
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/app/src/main/lib/android-ripple-background/README.md:
--------------------------------------------------------------------------------
1 | # Android Ripple Background
2 |
3 | A beautiful ripple animation for your app. You can easily change its color, speed of wave, one ripple or multiple ripples. See demo below.
4 |
5 |  
6 |
7 | ##Usage
8 |
9 | ###Step 1
10 |
11 | ####Install with Gradle
12 |
13 | ```groovy
14 | dependencies {
15 | compile 'com.skyfishjy.ripplebackground:library:1.0.1'
16 | }
17 | ```
18 | ###Step 2
19 | ####RippleBackground
20 |
21 | Add `RippleBackground` to your layout with content you want, like an ImageView. Configure the view customization elements using styleable attributes.
22 |
23 | ```xml
24 |
35 |
41 |
42 | ```
43 | Start animation:
44 |
45 | ```java
46 | final RippleBackground rippleBackground=(RippleBackground)findViewById(R.id.content);
47 | ImageView imageView=(ImageView)findViewById(R.id.centerImage);
48 | imageView.setOnClickListener(new View.OnClickListener() {
49 | @Override
50 | public void onClick(View view) {
51 | rippleBackground.startRippleAnimation();
52 | }
53 | });
54 | ```
55 | Stop animation:
56 |
57 | ```java
58 | rippleBackground.stopRippleAnimation();
59 | ```
60 |
61 | ##Theming
62 | * app:rb_color [color def:@android:color/holo_blue_dark] --> Color of the ripple
63 | * app:rb_radius [dimension def:64dp ] --> Radius of the ripple
64 | * app:rb_duration [integer def:3000 ] --> Duration of one ripple animation (millisecond)
65 | * app:rb_rippleAmount [integer def:6] --> Max amount of ripples at one screen
66 | * app:rb_scale [interger def:6] --> Scale of ripple at the end of one animation cycle
67 | * app:rb_type [enum (fillRipple, strokeRipple) def:fillRipple] --> Filled circle or ring
68 | * app:rb_strokeWidth [dimension def:2dp] --> Stroke width of the ripple, ONLY work when rb_type="strokeRipple"
69 |
70 | [](https://android-arsenal.com/details/1/1107)
71 |
--------------------------------------------------------------------------------
/app/src/main/res/values-ast/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | D\'acuerdu
4 | Buscando relós
5 | Preséu desconocíu
6 | Nun s\'atoparon relós
7 | Atopóse un reló
8 | Atopáronse %d relós
9 | Conectando…
10 | Coneutando con %s
11 | Iconu d\'Axustes
12 | ¡El teléfonu búscate!
13 | Baxando…
14 | Por defeutu
15 | Vibración
16 | Vibración fuerte
17 | Equí apaecen los avisos de les aplicaciones
18 | Afáyate
19 | Esta aplicación déxate sincronizar esti teléfonu Android con un reló AsteroidOS. Por embargu, l\'aplicación precisa dalgunos permisos.
20 | Accesu a ficheros
21 | P\'atroxar datos na caché y guardar les captures del reló.
22 | Allugamientu
23 | Pa buscar preseos Bluetooth de consumu baxu cercanos.
24 | Avisos
25 | Optimización de la batería
26 | Pa dexar qu\'esta aplicación s\'execute en segundu planu, desactiva «Optimización de la batería» p\'AsteroidOS Sync nel menú de darréu:
27 | Esti preséu nun sofita\'l Bluetooth de consumu baxu.
28 | Conceder
29 | Concede\'l permisu
30 | Concede\'l permisu
31 | Axustes
32 | Axustes
33 | Axustes
34 | Pa sincronizar los avisos col reló, da laude a AsteroidOS Sync nel menú de darréu:
35 | Marcador
36 | Android Go
37 | Timbre
38 | Teléfonu y contautos
39 |
40 |
41 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/listeners/ViewBehavioursOnPageChangeListener.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.listeners;
2 |
3 | import io.github.dreierf.materialintroscreen.widgets.CustomViewPager;
4 |
5 | import java.util.ArrayList;
6 | import java.util.List;
7 |
8 | import io.github.dreierf.materialintroscreen.adapter.SlidesAdapter;
9 | import io.github.dreierf.materialintroscreen.animations.ViewTranslationWrapper;
10 |
11 | public class ViewBehavioursOnPageChangeListener implements CustomViewPager.OnPageChangeListener {
12 | private final SlidesAdapter adapter;
13 |
14 | private List listeners = new ArrayList<>();
15 | private List wrappers = new ArrayList<>();
16 | private List pageScrolledListeners = new ArrayList<>();
17 |
18 | public ViewBehavioursOnPageChangeListener(SlidesAdapter adapter) {
19 | this.adapter = adapter;
20 | }
21 |
22 | public ViewBehavioursOnPageChangeListener registerPageSelectedListener(IPageSelectedListener pageSelectedListener) {
23 | listeners.add(pageSelectedListener);
24 | return this;
25 | }
26 |
27 | public ViewBehavioursOnPageChangeListener registerViewTranslationWrapper(ViewTranslationWrapper wrapper) {
28 | wrappers.add(wrapper);
29 | return this;
30 | }
31 |
32 | public ViewBehavioursOnPageChangeListener registerOnPageScrolled(IPageScrolledListener pageScrolledListener) {
33 | pageScrolledListeners.add(pageScrolledListener);
34 | return this;
35 | }
36 |
37 | @Override
38 | public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
39 | if (isFirstSlide(position)) {
40 | for (ViewTranslationWrapper wrapper : wrappers) {
41 | wrapper.enterTranslate(positionOffset);
42 | }
43 | } else if (adapter.isLastSlide(position)) {
44 | for (ViewTranslationWrapper wrapper : wrappers) {
45 | wrapper.exitTranslate(positionOffset);
46 | }
47 | } else {
48 | for (ViewTranslationWrapper wrapper : wrappers) {
49 | wrapper.defaultTranslate(positionOffset);
50 | }
51 | }
52 |
53 | for (IPageScrolledListener pageScrolledListener : pageScrolledListeners) {
54 | pageScrolledListener.pageScrolled(position, positionOffset);
55 | }
56 | }
57 |
58 | @Override
59 | public void onPageSelected(int position) {
60 | for (IPageSelectedListener pageSelectedListener : listeners) {
61 | pageSelectedListener.pageSelected(position);
62 | }
63 | }
64 |
65 | @Override
66 | public void onPageScrollStateChanged(int state) {
67 | }
68 |
69 | private boolean isFirstSlide(int position) {
70 | return position == 0;
71 | }
72 | }
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/parallax/ParallaxRelativeLayout.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.parallax;
2 |
3 | import android.content.Context;
4 | import android.content.res.TypedArray;
5 | import android.util.AttributeSet;
6 | import android.view.View;
7 | import android.view.ViewGroup;
8 | import android.widget.RelativeLayout;
9 |
10 | import androidx.annotation.FloatRange;
11 | import org.asteroidos.sync.R;
12 |
13 | public class ParallaxRelativeLayout extends RelativeLayout implements Parallaxable {
14 |
15 | public ParallaxRelativeLayout(Context context) {
16 | super(context);
17 | }
18 |
19 | public ParallaxRelativeLayout(Context context, AttributeSet attrs) {
20 | super(context, attrs);
21 | }
22 |
23 | public ParallaxRelativeLayout(Context context, AttributeSet attrs, int defStyleAttr) {
24 | super(context, attrs, defStyleAttr);
25 | }
26 |
27 | @Override
28 | protected boolean checkLayoutParams(ViewGroup.LayoutParams p) {
29 | return p instanceof LayoutParams;
30 | }
31 |
32 | @Override
33 | protected LayoutParams generateDefaultLayoutParams() {
34 | return new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
35 | }
36 |
37 | @Override
38 | public LayoutParams generateLayoutParams(AttributeSet attrs) {
39 | return new LayoutParams(getContext(), attrs);
40 | }
41 |
42 | @Override
43 | protected LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) {
44 | return new LayoutParams(p);
45 | }
46 |
47 | @Override
48 | public void setOffset(@FloatRange(from = -1.0, to = 1.0) float offset) {
49 | for (int i = getChildCount() - 1; i >= 0; i--) {
50 | View child = getChildAt(i);
51 | ParallaxRelativeLayout.LayoutParams p = (LayoutParams) child.getLayoutParams();
52 | if (p.parallaxFactor == 0)
53 | continue;
54 | child.setTranslationX(getWidth() * -offset * p.parallaxFactor);
55 | }
56 | }
57 |
58 | public static class LayoutParams extends RelativeLayout.LayoutParams {
59 | float parallaxFactor = 0f;
60 |
61 | LayoutParams(Context context, AttributeSet attributeSet) {
62 | super(context, attributeSet);
63 | TypedArray typedArray = context.obtainStyledAttributes(attributeSet, R.styleable.ParallaxLayout_Layout);
64 | parallaxFactor = typedArray.getFloat(R.styleable.ParallaxLayout_Layout_layout_parallaxFactor, parallaxFactor);
65 | typedArray.recycle();
66 | }
67 |
68 | LayoutParams(int width, int height) {
69 | super(width, height);
70 | }
71 |
72 | LayoutParams(ViewGroup.LayoutParams source) {
73 | super(source);
74 | }
75 |
76 | @SuppressWarnings("unused")
77 | LayoutParams(MarginLayoutParams source) {
78 | super(source);
79 | }
80 | }
81 | }
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/animations/ViewTranslationWrapper.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.animations;
2 |
3 | import androidx.annotation.AnimRes;
4 | import android.view.View;
5 | import android.view.animation.Animation;
6 | import android.view.animation.AnimationUtils;
7 |
8 | import io.github.dreierf.materialintroscreen.animations.translations.NoTranslation;
9 |
10 | @SuppressWarnings("WeakerAccess")
11 | public class ViewTranslationWrapper {
12 | private View view;
13 |
14 | private IViewTranslation enterTranslation;
15 | private IViewTranslation exitTranslation;
16 | private IViewTranslation defaultTranslation;
17 | private Animation errorAnimation;
18 |
19 | public ViewTranslationWrapper(View view) {
20 | this.view = view;
21 |
22 | enterTranslation = new NoTranslation();
23 | exitTranslation = new NoTranslation();
24 | setErrorAnimation(0);
25 | }
26 |
27 | /**
28 | * Set translation after passing first slide
29 | *
30 | * @param enterTranslation new translation
31 | * @return ViewTranslationWrapper object
32 | */
33 | public ViewTranslationWrapper setEnterTranslation(IViewTranslation enterTranslation) {
34 | this.enterTranslation = enterTranslation;
35 | return this;
36 | }
37 |
38 | /**
39 | * Set translation after passing last slide
40 | *
41 | * @param exitTranslation new translation
42 | * @return ViewTranslationWrapper object
43 | */
44 | public ViewTranslationWrapper setExitTranslation(IViewTranslation exitTranslation) {
45 | this.exitTranslation = exitTranslation;
46 | return this;
47 | }
48 |
49 | /**
50 | * Set default translation
51 | *
52 | * @param defaultTranslation new translation
53 | * @return ViewTranslationWrapper object
54 | */
55 | public ViewTranslationWrapper setDefaultTranslation(IViewTranslation defaultTranslation) {
56 | this.defaultTranslation = defaultTranslation;
57 | return this;
58 | }
59 |
60 | /**
61 | * Set view on error animation
62 | *
63 | * @param errorAnimation new animation
64 | * @return ViewTranslationWrapper object
65 | */
66 | public ViewTranslationWrapper setErrorAnimation(@AnimRes int errorAnimation) {
67 | if (errorAnimation != 0) {
68 | this.errorAnimation = AnimationUtils.loadAnimation(view.getContext(), errorAnimation);
69 | }
70 | return this;
71 | }
72 |
73 | public void enterTranslate(float percentage) {
74 | enterTranslation.translate(view, percentage);
75 | }
76 |
77 | public void exitTranslate(float percentage) {
78 | exitTranslation.translate(view, percentage);
79 | }
80 |
81 | public void defaultTranslate(float percentage) {
82 | defaultTranslation.translate(view, percentage);
83 | }
84 |
85 | public void error() {
86 | if (errorAnimation != null) {
87 | view.startAnimation(errorAnimation);
88 | }
89 | }
90 | }
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/listeners/MessageButtonBehaviourOnPageSelected.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.listeners;
2 |
3 | import android.util.SparseArray;
4 | import android.view.View;
5 | import android.view.animation.AnimationUtils;
6 | import android.widget.Button;
7 |
8 | import io.github.dreierf.materialintroscreen.MessageButtonBehaviour;
9 | import org.asteroidos.sync.R;
10 | import io.github.dreierf.materialintroscreen.SlideFragment;
11 | import io.github.dreierf.materialintroscreen.adapter.SlidesAdapter;
12 |
13 | import static io.github.dreierf.materialintroscreen.SlideFragment.isNotNullOrEmpty;
14 |
15 | public class MessageButtonBehaviourOnPageSelected implements IPageSelectedListener {
16 | private Button messageButton;
17 | private SlidesAdapter adapter;
18 | private SparseArray messageButtonBehaviours;
19 |
20 | public MessageButtonBehaviourOnPageSelected(Button messageButton, SlidesAdapter adapter, SparseArray messageButtonBehaviours) {
21 | this.messageButton = messageButton;
22 | this.adapter = adapter;
23 | this.messageButtonBehaviours = messageButtonBehaviours;
24 | }
25 |
26 | @Override
27 | public void pageSelected(int position) {
28 | final SlideFragment slideFragment = adapter.getItem(position);
29 |
30 | if (slideFragment.hasAnyPermissionsToGrant()) {
31 | showMessageButton(slideFragment);
32 | messageButton.setText(slideFragment.getActivity().getString(R.string.grant_permission));
33 | messageButton.setOnClickListener(new View.OnClickListener() {
34 | @Override
35 | public void onClick(View view) {
36 | slideFragment.askForPermissions();
37 | }
38 | });
39 | } else if (checkIfMessageButtonHasBehaviour(position)) {
40 | showMessageButton(slideFragment);
41 | messageButton.setText(messageButtonBehaviours.get(position).getMessageButtonText());
42 | messageButton.setOnClickListener(messageButtonBehaviours.get(position).getClickListener());
43 | } else if (messageButton.getVisibility() != View.INVISIBLE) {
44 | messageButton.startAnimation(AnimationUtils.loadAnimation(slideFragment.getContext(), R.anim.fade_out));
45 | messageButton.setVisibility(View.INVISIBLE);
46 | }
47 | }
48 |
49 | private boolean checkIfMessageButtonHasBehaviour(int position) {
50 | return messageButtonBehaviours.get(position) != null && isNotNullOrEmpty(messageButtonBehaviours.get(position).getMessageButtonText());
51 | }
52 |
53 | private void showMessageButton(final SlideFragment fragment) {
54 | if (messageButton.getVisibility() != View.VISIBLE) {
55 | messageButton.setVisibility(View.VISIBLE);
56 | if (fragment.getActivity() != null) {
57 | messageButton.startAnimation(AnimationUtils.loadAnimation(fragment.getActivity(), R.anim.fade_in));
58 |
59 | }
60 | }
61 | }
62 | }
--------------------------------------------------------------------------------
/app/src/main/java/org/asteroidos/sync/dataobjects/Notification.java:
--------------------------------------------------------------------------------
1 | /*
2 | * AsteroidOSSync
3 | * Copyright (c) 2023 AsteroidOS
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 |
19 | package org.asteroidos.sync.dataobjects;
20 |
21 | import java.nio.charset.StandardCharsets;
22 |
23 | public class Notification {
24 | String packageName, appName, appIcon, summary, body, vibration = "";
25 | final MsgType msgType;
26 | final int id;
27 |
28 | public Notification(MsgType msgType, String packageName, int id, String appName, String appIcon, String summary, String body, String vibration) {
29 | this.msgType = msgType;
30 | this.packageName = packageName;
31 | this.id = id;
32 | this.appName = appName;
33 | this.appIcon = appIcon;
34 | this.summary = summary;
35 | this.body = body;
36 | this.vibration = vibration;
37 | }
38 |
39 | public Notification(MsgType msgType, int id) {
40 | this.msgType = msgType;
41 | this.id = id;
42 | }
43 |
44 | /***
45 | * @return XML serialized {@link Notification}
46 | */
47 | public final String toXML() {
48 | String xmlRequest = "";
49 |
50 | if (msgType == MsgType.POSTED) {
51 | xmlRequest = "" + id + "";
52 | if (!packageName.isEmpty())
53 | xmlRequest += "" + packageName + "";
54 | if (!vibration.isEmpty())
55 | xmlRequest += "" + vibration + "";
56 | if (!appName.isEmpty())
57 | xmlRequest += "" + appName + "";
58 | if (!appIcon.isEmpty())
59 | xmlRequest += "" + appIcon + "";
60 | if (!summary.isEmpty())
61 | xmlRequest += "" + summary + "";
62 | if (!body.isEmpty())
63 | xmlRequest += "" + body + "";
64 | xmlRequest += "";
65 | } else if (msgType == MsgType.REMOVED) {
66 | xmlRequest = "" +
67 | "" + id + "" +
68 | "";
69 | }
70 |
71 | return xmlRequest;
72 | }
73 |
74 | /***
75 | * @return Returns {@link Notification#toXML()} as byte[] for BLE transmission
76 | */
77 | public final byte[] toBytes() {
78 | return this.toXML().getBytes(StandardCharsets.UTF_8);
79 | }
80 |
81 | public enum MsgType {
82 | POSTED, REMOVED
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/app/src/main/java/org/asteroidos/sync/connectivity/SilentModeService.java:
--------------------------------------------------------------------------------
1 | /*
2 | * AsteroidOSSync
3 | * Copyright (c) 2023 AsteroidOS
4 | *
5 | * This program is free software: you can redistribute it and/or modify
6 | * it under the terms of the GNU General Public License as published by
7 | * the Free Software Foundation, either version 3 of the License, or
8 | * (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | * GNU General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program. If not, see .
17 | */
18 |
19 | package org.asteroidos.sync.connectivity;
20 |
21 | import android.app.Activity;
22 | import android.content.Context;
23 | import android.content.SharedPreferences;
24 | import android.media.AudioManager;
25 |
26 | public class SilentModeService implements SharedPreferences.OnSharedPreferenceChangeListener, IService {
27 |
28 | public static final String PREFS_NAME = "AppPreferences";
29 | public static final String PREF_RINGER = "PhoneRingModeOnConnection";
30 | private static final String PREF_ORIG_RINGER = "OriginalRingMode";
31 | private final SharedPreferences prefs;
32 | private Boolean notificationPref;
33 | private final AudioManager am;
34 |
35 | public SilentModeService(Context con) {
36 | prefs = con.getSharedPreferences(PREFS_NAME, Activity.MODE_PRIVATE);
37 | prefs.registerOnSharedPreferenceChangeListener(this);
38 | am = (AudioManager) con.getSystemService(Context.AUDIO_SERVICE);
39 |
40 | }
41 |
42 | @Override
43 | public final void sync() {
44 | if (notificationPref == null) {
45 | notificationPref = prefs.getBoolean(PREF_RINGER, false);
46 |
47 | SharedPreferences.Editor editor = prefs.edit();
48 | editor.putInt(PREF_ORIG_RINGER, am.getRingerMode());
49 | editor.apply();
50 |
51 | if (notificationPref) {
52 | am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
53 | }
54 | }
55 | }
56 |
57 | @Override
58 | public final void unsync() {
59 | if (notificationPref != null) {
60 | notificationPref = prefs.getBoolean(PREF_RINGER, false);
61 | if (notificationPref) {
62 | int origRingerMode = prefs.getInt(PREF_ORIG_RINGER, AudioManager.RINGER_MODE_NORMAL);
63 | am.setRingerMode(origRingerMode);
64 | }
65 | notificationPref = null;
66 | }
67 | }
68 |
69 | @Override
70 | public final void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
71 | notificationPref = prefs.getBoolean(PREF_RINGER, false);
72 | if (notificationPref) {
73 | am.setRingerMode(AudioManager.RINGER_MODE_SILENT);
74 | } else {
75 | am.setRingerMode(prefs.getInt(PREF_ORIG_RINGER, am.getRingerMode()));
76 | }
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/parallax/ParallaxLinearLayout.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.parallax;
2 |
3 | import android.content.Context;
4 | import android.content.res.TypedArray;
5 | import androidx.annotation.FloatRange;
6 | import android.util.AttributeSet;
7 | import android.view.View;
8 | import android.view.ViewGroup;
9 | import android.widget.LinearLayout;
10 |
11 | import org.asteroidos.sync.R;
12 |
13 | public class ParallaxLinearLayout extends LinearLayout implements Parallaxable {
14 |
15 | public ParallaxLinearLayout(Context context) {
16 | super(context);
17 | }
18 |
19 | public ParallaxLinearLayout(Context context, AttributeSet attrs) {
20 | super(context, attrs);
21 | }
22 |
23 | public ParallaxLinearLayout(Context context, AttributeSet attrs, int defStyleAttr) {
24 | super(context, attrs, defStyleAttr);
25 | }
26 |
27 | @Override
28 | protected boolean checkLayoutParams(ViewGroup.LayoutParams p) {
29 | return p instanceof LayoutParams;
30 | }
31 |
32 | @Override
33 | protected LayoutParams generateDefaultLayoutParams() {
34 | return new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
35 | }
36 |
37 | @Override
38 | public LayoutParams generateLayoutParams(AttributeSet attrs) {
39 | return new LayoutParams(getContext(), attrs);
40 | }
41 |
42 | @Override
43 | protected LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) {
44 | return new LayoutParams(p);
45 | }
46 |
47 | @Override
48 | public void setOffset(@FloatRange(from = -1.0, to = 1.0) float offset) {
49 | for (int i = getChildCount() - 1; i >= 0; i--) {
50 | View child = getChildAt(i);
51 | ParallaxLinearLayout.LayoutParams p = (LayoutParams) child.getLayoutParams();
52 | if (p.parallaxFactor == 0)
53 | continue;
54 | child.setTranslationX(getWidth() * -offset * p.parallaxFactor);
55 | }
56 | }
57 |
58 | public static class LayoutParams extends LinearLayout.LayoutParams {
59 | float parallaxFactor = 0f;
60 |
61 | LayoutParams(Context context, AttributeSet attributeSet) {
62 | super(context, attributeSet);
63 | TypedArray typedArray = context.obtainStyledAttributes(attributeSet, R.styleable.ParallaxLayout_Layout);
64 | parallaxFactor = typedArray.getFloat(R.styleable.ParallaxLayout_Layout_layout_parallaxFactor, parallaxFactor);
65 | typedArray.recycle();
66 | }
67 |
68 | LayoutParams(int width, int height) {
69 | super(width, height);
70 | }
71 |
72 | @SuppressWarnings("unused")
73 | LayoutParams(int width, int height, int gravity) {
74 | super(width, height, gravity);
75 | }
76 |
77 | LayoutParams(ViewGroup.LayoutParams source) {
78 | super(source);
79 | }
80 |
81 | @SuppressWarnings("unused")
82 | LayoutParams(MarginLayoutParams source) {
83 | super(source);
84 | }
85 | }
86 | }
--------------------------------------------------------------------------------
/app/src/main/lib/material-intro-screen/material-intro-screen/src/main/java/io/github/dreierf/materialintroscreen/parallax/ParallaxFrameLayout.java:
--------------------------------------------------------------------------------
1 | package io.github.dreierf.materialintroscreen.parallax;
2 |
3 | import android.content.Context;
4 | import android.content.res.TypedArray;
5 | import androidx.annotation.FloatRange;
6 | import org.asteroidos.sync.R;
7 |
8 | import android.util.AttributeSet;
9 | import android.view.View;
10 | import android.view.ViewGroup;
11 | import android.widget.FrameLayout;
12 |
13 |
14 | public class ParallaxFrameLayout extends FrameLayout implements Parallaxable {
15 |
16 | public ParallaxFrameLayout(Context context) {
17 | super(context);
18 | }
19 |
20 | public ParallaxFrameLayout(Context context, AttributeSet attrs) {
21 | super(context, attrs);
22 | }
23 |
24 | public ParallaxFrameLayout(Context context, AttributeSet attrs, int defStyleAttr) {
25 | super(context, attrs, defStyleAttr);
26 | }
27 |
28 | @Override
29 | protected boolean checkLayoutParams(ViewGroup.LayoutParams layoutParams) {
30 | return layoutParams instanceof LayoutParams;
31 | }
32 |
33 | @Override
34 | protected LayoutParams generateDefaultLayoutParams() {
35 | return new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
36 | }
37 |
38 | @Override
39 | public LayoutParams generateLayoutParams(AttributeSet attrs) {
40 | return new LayoutParams(getContext(), attrs);
41 | }
42 |
43 | @Override
44 | protected LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) {
45 | return new LayoutParams(p);
46 | }
47 |
48 | @Override
49 | public void setOffset(@FloatRange(from = -1.0, to = 1.0) float offset) {
50 | for (int i = getChildCount() - 1; i >= 0; i--) {
51 | View child = getChildAt(i);
52 | ParallaxFrameLayout.LayoutParams layoutParams = (LayoutParams) child.getLayoutParams();
53 | if (layoutParams.parallaxFactor == 0)
54 | continue;
55 | child.setTranslationX(getWidth() * -offset * layoutParams.parallaxFactor);
56 | }
57 | }
58 |
59 | public static class LayoutParams extends FrameLayout.LayoutParams {
60 | float parallaxFactor = 0f;
61 |
62 | LayoutParams(Context context, AttributeSet attributeSet) {
63 | super(context, attributeSet);
64 | TypedArray typedArray = context.obtainStyledAttributes(attributeSet, R.styleable.ParallaxLayout_Layout);
65 | parallaxFactor = typedArray.getFloat(R.styleable.ParallaxLayout_Layout_layout_parallaxFactor, parallaxFactor);
66 | typedArray.recycle();
67 | }
68 |
69 | LayoutParams(int width, int height) {
70 | super(width, height);
71 | }
72 |
73 | @SuppressWarnings("unused")
74 | LayoutParams(int width, int height, int gravity) {
75 | super(width, height, gravity);
76 | }
77 |
78 | LayoutParams(ViewGroup.LayoutParams source) {
79 | super(source);
80 | }
81 |
82 | @SuppressWarnings("unused")
83 | LayoutParams(MarginLayoutParams source) {
84 | super(source);
85 | }
86 | }
87 | }
--------------------------------------------------------------------------------
/app/src/main/res/values-lb/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Ok
4 | Onbekannten Apparat
5 | Keng Aueren fonnt
6 | Eng Auer fonnt
7 | %d Aueren fonnt
8 | Verbonnen
9 | Verbannen…
10 | Verbonnen mat %s
11 | Verbannen mat %s
12 | „Verbonnen“-Icon
13 | „Akku“-Icon
14 | „Bildschirmfoto“-Icon
15 | „Fannen“-Icon
16 | Sichen no Aueren
17 | Verbindung getrennt
18 | „Astellungen“-Icon
19 | „Wieder“-Icon
20 | Auer-Icon
21 | Bildschirmfoto maachen
22 | Meng Auer fannen
23 | Auer-Fanner
24 | Den Telefon sicht Dech!
25 | Notifikatiounsastellungen
26 | Wiederastellungen
27 | Numm vun der Stad aginn:
28 | Pairing läschen
29 | Scannen…
30 | Gëtt rofgelueden…
31 | Rofgelueden
32 | Bildschirmfoto
33 | Zäit synchroniséieren
34 | Standard
35 | Keng Noriichten
36 | Stomm
37 | Vibratioun
38 | Staark Vibratioun
39 | Noriichten vun äeren Apps ginn hei ugewisen
40 | Huel dës Plaz fir d\'Wieder
41 | Applikatiounssymbol
42 | Wëllkomm
43 | Mat dëser App kanns du däin Android-Handy mat denger AsteroidOS-Auer synchroniséieren. Mee fir d\'éischt brauch se puer Permissiounen.
44 | Dateizougrëff
45 | Standort
46 | Notifikatiounen
47 | Batterieoptiméierung
48 | Ennerstëtzung fir Bluetooth Low Energy
49 | Erlaabnes erdeelen
50 | Wieder automatesch sichen
51 |
52 |
--------------------------------------------------------------------------------
/app/src/main/res/values-ia/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | OK
4 | Cercante horologios
5 | Apparato incognite
6 | Necun horologios trovate
7 | %d horologios trovate
8 | Connectente…
9 | Icone de connexion
10 | Icone de information del batteria
11 | Icone del captura de schermo
12 | Icone del cercator
13 | Icone de parametros
14 | Icone del tempore
15 | Trova mi horologio
16 | Cercator de horologio
17 | Parametros del notificationes
18 | Insere un nomine de citate:
19 | Captura de schermo
20 | Synchronisar le hora
21 | Predeterminate
22 | Silentiose
23 | Discargante…
24 | Un horologio trovate
25 | Parametros del tempore
26 | Discargate
27 | Icone del hora
28 | Facer un captura de schermo
29 | Benvenite
30 | Accesso a files
31 | Location e Bluetooth
32 | Notificationes
33 | Android Go
34 | Conceder permission
35 | Parametros
36 | Parametros
37 | Parametros
38 | Telephono e contactos
39 | Applicar
40 | Cancellar
41 | Location disactivate
42 | Icone de application
43 | Disconnectite
44 | Connectite
45 | Connectite a %s
46 | Connectente a %s
47 | Le telephono te sta cercante!
48 | Scannante…
49 | Localisar le tempore automaticamente
50 | Sin notificationes
51 | Vibrationes
52 | Vibration forte
53 | Le notificationes de tu applicationes apparera hic
54 | Usar iste localisation pro le tempore
55 |
--------------------------------------------------------------------------------
/app/src/main/lib/powerampapi/poweramp_api_lib/build.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
29 |
30 |
31 |
40 |
41 |
42 |
43 |
47 |
48 |
49 |
51 |
63 |
64 |
82 |
83 |
84 |
85 |
86 |
--------------------------------------------------------------------------------
/app/src/main/res/values-bqi/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | قوۊل
4 | من پیتینیڌن ساعتا
5 | دسگا نشناخته
6 | …ساعتی نجۊرست
7 | %d ساعت جۊرست
8 | منپیز وابیڌه و %s
9 | هونی منپیز ابۊ و %s
10 | آیکون منپیز وابیڌن
11 | آیکون دووسمندیا قوبه
12 | آیکون گرؽڌن شؽوات ز بلگه
13 | آیکون جۊرستن
14 | آیکون سامووا
15 | آیکون او وو هوا
16 | آیکون زمووݩ
17 | شؽوات بلگه
18 | ساعتومه بجۊر
19 | ساعتجۊر
20 | هونی اسکن اکونه…
21 | هونی دانلود ابۊ…
22 | دانلود وابی
23 | شؽوات بلگه
24 | هوم گوم کردن زمووݩ
25 | دک زیڌنا
26 | آیکون برنومه
27 | خش ٱوۊڌین
28 | دسرسی فایل
29 | جاگه وو بۊلۊتۊس
30 | وارسۊویا
31 | بؽڌر کردن قوبه
32 | لادراری بۊلۊتۊس کم مسرف
33 | ای دسگا ز بۊلۊتۊس کم مسرف لادراری نؽکونه.
34 | ٱندروید گو
35 | داڌن دسرسی
36 | ای دسرسی ن بڌین
37 | ای دسرسی ن بڌین
38 | سامووا
39 | سامووا
40 | سامووا
41 | خامۊشی تیلیفووݩ مجال منپیز بیڌن
42 | آیکون خامۊشی وارسۊوی
43 | آرنگ زنگ
44 | تیلیفووݩ هونی ز دین ایسا اگرده!
45 | سامووا وارسۊویا
46 | سامووا او وو هوا
47 | نوم ی شئر ن بزݩ:
48 | قت منپیز
49 | جۊرستن خوتکار جاگه سی او وو هوا
50 | پؽش فرز
51 | بؽوارسۊوی
52 | کۊر
53 | وارسۊویا برنومه یل ایسا ایچو نشووݩ داڌه ابۊن
54 | نشووݩ گر جاگه
55 | و کار گرؽڌن ای وولات سی او وو هوا
56 | جاگه ز کار وسته
57 | 1 ساعت جۊرست
58 | قت وابیڌه
59 | منپیز وابیڌه
60 | هونی منپیز ابۊ…
61 |
62 |
--------------------------------------------------------------------------------