├── .drone.yml ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── config.yml │ └── feature_request.md └── workflows │ └── android.yml ├── .gitignore ├── .idea ├── codeStyles │ ├── Project.xml │ └── codeStyleConfig.xml ├── compiler.xml ├── deploymentTargetDropDown.xml ├── dictionaries │ └── jonas.xml ├── encodings.xml ├── gradle.xml ├── inspectionProfiles │ └── Project_Default.xml ├── jarRepositories.xml ├── kotlinc.xml ├── migrations.xml └── vcs.xml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── CONTRIBUTORS.md ├── CONTRIBUTORS.template.md ├── Gemfile ├── Gemfile.lock ├── LICENSE ├── PROJECT_AIMS.md ├── README.md ├── app ├── .gitignore ├── ad │ └── release │ │ ├── app-ad-release.apk │ │ └── output.json ├── adfree │ └── release │ │ ├── app-adfree-release.apk │ │ └── output.json ├── build.gradle ├── proguard-rules.pro ├── release │ ├── FakeStandby_v1.0_release.apk │ ├── FakeStandby_v1.1_release.apk │ ├── FakeStandby_v1.1_release_(target_v28).apk │ ├── FakeStandby_v1.2.0_release.apk │ └── output.json └── src │ ├── ad │ ├── AndroidManifest.xml │ └── java │ │ └── android │ │ └── jonas │ │ └── fakestandby │ │ └── settings │ │ └── SettingsActivity.java │ ├── adDebug │ ├── java │ │ └── android │ │ │ └── jonas │ │ │ └── fakestandby │ │ │ └── utils │ │ │ └── Secrets.java │ └── res │ │ └── layout │ │ └── activity_settings.xml │ ├── adRelease │ ├── java │ │ └── android │ │ │ └── jonas │ │ │ └── fakestandby │ │ │ └── utils │ │ │ └── Secrets.java │ └── res │ │ └── layout │ │ └── activity_settings.xml │ ├── adfree │ ├── java │ │ └── android │ │ │ └── jonas │ │ │ └── fakestandby │ │ │ └── settings │ │ │ └── SettingsActivity.java │ └── res │ │ └── layout │ │ └── activity_settings.xml │ ├── androidTest │ └── java │ │ └── android │ │ └── jonas │ │ └── fakestandby │ │ └── ExampleInstrumentedTest.java │ ├── debug │ └── AndroidManifest.xml │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── android │ │ │ └── jonas │ │ │ └── fakestandby │ │ │ ├── actions │ │ │ ├── StartOverlay.java │ │ │ └── StopOverlay.java │ │ │ ├── compatibility │ │ │ └── OverlayNotification.java │ │ │ ├── onboarding │ │ │ └── OnBoardingActivity.java │ │ │ ├── permissions │ │ │ ├── AccessibilityServiceNotEnabledDialog.java │ │ │ ├── AccessibilityServiceNotRunningDialog.java │ │ │ ├── OverlayPermissionRequiredDialog.java │ │ │ └── PermissionUtils.java │ │ │ ├── quicktile │ │ │ └── OverlayQuickTile.java │ │ │ ├── service │ │ │ ├── AccessibilityOverlayService.java │ │ │ └── PhoneLockReceiver.java │ │ │ ├── settings │ │ │ ├── LicenseActivity.java │ │ │ └── NoCloseOptionSelectedNotification.java │ │ │ └── utils │ │ │ ├── Constants.java │ │ │ ├── OnHideFinishedListener.java │ │ │ ├── OnSwipeListener.java │ │ │ ├── OverlayCancelListener.java │ │ │ ├── OverlayView.java │ │ │ └── Utils.java │ └── res │ │ ├── color │ │ ├── secondary_text_colors.xml │ │ └── text_colors.xml │ │ ├── drawable-v26 │ │ └── app_icon_adaptive.xml │ │ ├── drawable │ │ ├── ic_baseline_code_24.xml │ │ ├── ic_baseline_copyright_24.xml │ │ ├── ic_baseline_open_in_new_24.xml │ │ ├── ic_baseline_public_24.xml │ │ ├── ic_baseline_settings_24.xml │ │ └── ic_baseline_translate_24.xml │ │ ├── layout │ │ ├── activity_license.xml │ │ └── content_settings.xml │ │ ├── mipmap-anydpi-v26 │ │ └── app_icon_final.xml │ │ ├── mipmap-hdpi │ │ ├── app_icon_background.png │ │ ├── app_icon_final.png │ │ └── app_icon_foreground.png │ │ ├── mipmap-mdpi │ │ ├── app_icon.png │ │ ├── app_icon_background.png │ │ ├── app_icon_final.png │ │ ├── app_icon_foreground.png │ │ ├── simple_icon.png │ │ ├── simple_icon_24dp.png │ │ ├── simple_icon_36dp.png │ │ └── simple_tile_icon_36dp.png │ │ ├── mipmap-xhdpi │ │ ├── app_icon_background.png │ │ ├── app_icon_final.png │ │ └── app_icon_foreground.png │ │ ├── mipmap-xxxhdpi │ │ ├── app_icon_background.png │ │ ├── app_icon_final.png │ │ └── app_icon_foreground.png │ │ ├── values-ar │ │ └── strings.xml │ │ ├── values-bn │ │ └── strings.xml │ │ ├── values-de │ │ └── strings.xml │ │ ├── values-es │ │ └── strings.xml │ │ ├── values-fa │ │ └── strings.xml │ │ ├── values-fr │ │ └── strings.xml │ │ ├── values-hi │ │ └── strings.xml │ │ ├── values-hu │ │ └── strings.xml │ │ ├── values-in │ │ └── strings.xml │ │ ├── values-it │ │ └── strings.xml │ │ ├── values-nl │ │ └── strings.xml │ │ ├── values-pl │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ └── strings.xml │ │ ├── values-ru │ │ └── strings.xml │ │ ├── values-sw │ │ └── strings.xml │ │ ├── values-tr │ │ └── strings.xml │ │ ├── values-uk │ │ └── strings.xml │ │ ├── values-uz │ │ └── strings.xml │ │ ├── values-v25 │ │ └── styles.xml │ │ ├── values-v28 │ │ └── styles.xml │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ ├── values-zh-rTW │ │ └── strings.xml │ │ ├── values │ │ ├── arrays.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── license.xml │ │ ├── strings.xml │ │ └── styles.xml │ │ └── xml │ │ ├── accessibility_service_config.xml │ │ └── root_preferences.xml │ └── test │ └── java │ └── android │ └── jonas │ └── fakestandby │ └── ExampleUnitTest.java ├── branding ├── app_icon.svg ├── app_icon_final-web.png ├── app_icon_round.png ├── app_icon_round.svg ├── app_icon_round_opaque.png ├── app_icon_round_opaque.svg ├── app_icon_transparent.png ├── app_icon_transparent.svg └── simple_icon.svg ├── build.gradle ├── ci ├── README.MD ├── check_languages.js ├── generate_whatsnew_files.js ├── git-cleanup.sh ├── import_translations.js └── languages.json ├── doc └── exported-activities.md ├── fastlane ├── Appfile ├── Fastfile ├── README.md ├── Screengrabfile └── metadata │ └── android │ ├── .gitignore │ ├── ar │ ├── changelogs │ │ ├── 10.txt │ │ ├── 11.txt │ │ ├── 12.txt │ │ ├── 13.txt │ │ ├── 14.txt │ │ ├── 4.txt │ │ ├── 5.txt │ │ ├── 6.txt │ │ ├── 7.txt │ │ ├── 8.txt │ │ └── 9.txt │ ├── full_description.txt │ ├── poeditor.json │ └── short_description.txt │ ├── bn │ └── images │ │ ├── phoneScreenshots │ │ ├── 1_1602867066293.png │ │ └── 2_1602867067701.png │ │ ├── sevenInchScreenshots │ │ ├── 1_1602869396018.png │ │ └── 2_1602869398279.png │ │ └── tenInchScreenshots │ │ ├── 1_1602869998366.png │ │ └── 2_1602870000093.png │ ├── de │ ├── changelogs │ │ ├── 10.txt │ │ ├── 11.txt │ │ ├── 12.txt │ │ ├── 13.txt │ │ ├── 14.txt │ │ ├── 4.txt │ │ ├── 5.txt │ │ ├── 6.txt │ │ ├── 7.txt │ │ ├── 8.txt │ │ └── 9.txt │ ├── full_description.txt │ ├── images │ │ ├── phoneScreenshots │ │ │ ├── 1_1602867091705.png │ │ │ └── 2_1602867093829.png │ │ ├── sevenInchScreenshots │ │ │ ├── 1_1602869411536.png │ │ │ └── 2_1602869412355.png │ │ └── tenInchScreenshots │ │ │ ├── 1_1602870012577.png │ │ │ └── 2_1602870013923.png │ ├── poeditor.json │ ├── short_description.txt │ └── title.txt │ ├── en-US │ ├── changelogs │ │ ├── 10.txt │ │ ├── 11.txt │ │ ├── 12.txt │ │ ├── 13.txt │ │ ├── 14.txt │ │ ├── 4.txt │ │ ├── 5.txt │ │ ├── 6.txt │ │ ├── 7.txt │ │ ├── 8.txt │ │ └── 9.txt │ ├── full_description.txt │ ├── images │ │ ├── featureGraphic.png │ │ ├── icon.png │ │ ├── phoneScreenshots │ │ │ ├── 1_1602867047927.png │ │ │ └── 2_1602867049291.png │ │ ├── promoGraphic.png │ │ ├── sevenInchScreenshots │ │ │ ├── 1_1602869383182.png │ │ │ └── 2_1602869384421.png │ │ ├── tenInchScreenshots │ │ │ ├── 1_1602869989697.png │ │ │ └── 2_1602869990867.png │ │ └── tvBanner.png │ ├── poeditor.json │ ├── short_description.txt │ └── title.txt │ ├── es │ ├── changelogs │ │ ├── 4.txt │ │ ├── 5.txt │ │ └── 6.txt │ ├── full_description.txt │ ├── images │ │ ├── phoneScreenshots │ │ │ ├── 1_1602867117653.png │ │ │ └── 2_1602867118987.png │ │ ├── sevenInchScreenshots │ │ │ ├── 1_1602869426405.png │ │ │ └── 2_1602869427175.png │ │ └── tenInchScreenshots │ │ │ ├── 1_1602870025796.png │ │ │ └── 2_1602870026683.png │ ├── poeditor.json │ ├── short_description.txt │ └── title.txt │ ├── fa │ └── images │ │ ├── phoneScreenshots │ │ ├── 1_1602867150977.png │ │ └── 2_1602867156226.png │ │ ├── sevenInchScreenshots │ │ ├── 1_1602869438327.png │ │ └── 2_1602869439601.png │ │ └── tenInchScreenshots │ │ ├── 1_1602870038375.png │ │ └── 2_1602870039673.png │ ├── fr │ ├── changelogs │ │ ├── 4.txt │ │ ├── 5.txt │ │ ├── 6.txt │ │ ├── 7.txt │ │ └── 8.txt │ ├── full_description.txt │ ├── images │ │ ├── phoneScreenshots │ │ │ ├── 1_1602867209109.png │ │ │ └── 2_1602867250866.png │ │ ├── sevenInchScreenshots │ │ │ ├── 1_1602869460379.png │ │ │ └── 2_1602869461110.png │ │ └── tenInchScreenshots │ │ │ ├── 1_1602870060816.png │ │ │ └── 2_1602870061639.png │ ├── poeditor.json │ └── short_description.txt │ ├── hi │ ├── changelogs │ │ ├── 4.txt │ │ ├── 5.txt │ │ └── 6.txt │ ├── full_description.txt │ ├── images │ │ ├── phoneScreenshots │ │ │ ├── 1_1602867264303.png │ │ │ └── 2_1602867299646.png │ │ ├── sevenInchScreenshots │ │ │ ├── 1_1602869481315.png │ │ │ └── 2_1602869481988.png │ │ └── tenInchScreenshots │ │ │ ├── 1_1602870070800.png │ │ │ └── 2_1602870083721.png │ ├── poeditor.json │ └── short_description.txt │ ├── hu │ ├── changelogs │ │ ├── 10.txt │ │ ├── 11.txt │ │ ├── 4.txt │ │ ├── 5.txt │ │ ├── 6.txt │ │ ├── 7.txt │ │ ├── 8.txt │ │ └── 9.txt │ ├── full_description.txt │ ├── poeditor.json │ └── short_description.txt │ ├── id │ ├── changelogs │ │ ├── 10.txt │ │ ├── 11.txt │ │ ├── 4.txt │ │ ├── 5.txt │ │ ├── 6.txt │ │ ├── 7.txt │ │ ├── 8.txt │ │ └── 9.txt │ ├── full_description.txt │ ├── poeditor.json │ └── short_description.txt │ ├── in │ ├── changelogs │ │ ├── 10.txt │ │ ├── 11.txt │ │ ├── 4.txt │ │ ├── 5.txt │ │ ├── 6.txt │ │ ├── 7.txt │ │ ├── 8.txt │ │ └── 9.txt │ ├── full_description.txt │ ├── poeditor.json │ └── short_description.txt │ ├── it │ ├── changelogs │ │ ├── 4.txt │ │ ├── 5.txt │ │ ├── 6.txt │ │ ├── 7.txt │ │ └── 8.txt │ ├── full_description.txt │ ├── poeditor.json │ └── short_description.txt │ ├── nl │ └── images │ │ ├── phoneScreenshots │ │ ├── 1_1602867341864.png │ │ └── 2_1602867343607.png │ │ ├── sevenInchScreenshots │ │ ├── 1_1602869490964.png │ │ └── 2_1602869491728.png │ │ └── tenInchScreenshots │ │ ├── 1_1602870093717.png │ │ └── 2_1602870094522.png │ ├── node_modules │ ├── at-least-node │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── fs-extra │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── lib │ │ │ ├── copy-sync │ │ │ │ ├── copy-sync.js │ │ │ │ └── index.js │ │ │ ├── copy │ │ │ │ ├── copy.js │ │ │ │ └── index.js │ │ │ ├── empty │ │ │ │ └── index.js │ │ │ ├── ensure │ │ │ │ ├── file.js │ │ │ │ ├── index.js │ │ │ │ ├── link.js │ │ │ │ ├── symlink-paths.js │ │ │ │ ├── symlink-type.js │ │ │ │ └── symlink.js │ │ │ ├── fs │ │ │ │ └── index.js │ │ │ ├── index.js │ │ │ ├── json │ │ │ │ ├── index.js │ │ │ │ ├── jsonfile.js │ │ │ │ ├── output-json-sync.js │ │ │ │ └── output-json.js │ │ │ ├── mkdirs │ │ │ │ ├── index.js │ │ │ │ └── make-dir.js │ │ │ ├── move-sync │ │ │ │ ├── index.js │ │ │ │ └── move-sync.js │ │ │ ├── move │ │ │ │ ├── index.js │ │ │ │ └── move.js │ │ │ ├── output │ │ │ │ └── index.js │ │ │ ├── path-exists │ │ │ │ └── index.js │ │ │ ├── remove │ │ │ │ ├── index.js │ │ │ │ └── rimraf.js │ │ │ └── util │ │ │ │ ├── stat.js │ │ │ │ └── utimes.js │ │ └── package.json │ ├── graceful-fs │ │ ├── LICENSE │ │ ├── README.md │ │ ├── clone.js │ │ ├── graceful-fs.js │ │ ├── legacy-streams.js │ │ ├── package.json │ │ └── polyfills.js │ ├── jsonfile │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ ├── package.json │ │ └── utils.js │ └── universalify │ │ ├── LICENSE │ │ ├── README.md │ │ ├── index.js │ │ └── package.json │ ├── package-lock.json │ ├── pl │ ├── changelogs │ │ ├── 4.txt │ │ ├── 5.txt │ │ ├── 6.txt │ │ ├── 7.txt │ │ ├── 8.txt │ │ └── 9.txt │ ├── full_description.txt │ ├── poeditor.json │ └── short_description.txt │ ├── poeditor2fastlane.js │ ├── pt-BR │ ├── changelogs │ │ ├── 10.txt │ │ ├── 4.txt │ │ ├── 5.txt │ │ ├── 6.txt │ │ ├── 7.txt │ │ ├── 8.txt │ │ └── 9.txt │ ├── full_description.txt │ ├── images │ │ ├── phoneScreenshots │ │ │ ├── 1_1602867359499.png │ │ │ └── 2_1602867360839.png │ │ ├── sevenInchScreenshots │ │ │ ├── 1_1602869502147.png │ │ │ └── 2_1602869502945.png │ │ └── tenInchScreenshots │ │ │ ├── 1_1602870105081.png │ │ │ └── 2_1602870105912.png │ ├── poeditor.json │ └── short_description.txt │ ├── ru │ ├── changelogs │ │ ├── 10.txt │ │ ├── 11.txt │ │ ├── 12.txt │ │ ├── 13.txt │ │ ├── 14.txt │ │ ├── 4.txt │ │ ├── 5.txt │ │ ├── 6.txt │ │ ├── 7.txt │ │ ├── 8.txt │ │ └── 9.txt │ ├── full_description.txt │ ├── images │ │ ├── phoneScreenshots │ │ │ ├── 1_1602867371791.png │ │ │ └── 2_1602867373332.png │ │ ├── sevenInchScreenshots │ │ │ ├── 1_1602869513276.png │ │ │ └── 2_1602869514055.png │ │ └── tenInchScreenshots │ │ │ ├── 1_1602870116901.png │ │ │ └── 2_1602870117889.png │ ├── poeditor.json │ └── short_description.txt │ ├── tr │ ├── changelogs │ │ ├── 4.txt │ │ ├── 5.txt │ │ ├── 6.txt │ │ └── 7.txt │ ├── full_description.txt │ ├── images │ │ ├── phoneScreenshots │ │ │ ├── 1_1602867398611.png │ │ │ └── 2_1602867400156.png │ │ ├── sevenInchScreenshots │ │ │ ├── 1_1602869524359.png │ │ │ └── 2_1602869525371.png │ │ └── tenInchScreenshots │ │ │ ├── 1_1602870127923.png │ │ │ └── 2_1602870128828.png │ ├── poeditor.json │ └── short_description.txt │ ├── uk │ ├── changelogs │ │ ├── 10.txt │ │ ├── 11.txt │ │ ├── 12.txt │ │ ├── 13.txt │ │ ├── 14.txt │ │ ├── 4.txt │ │ ├── 5.txt │ │ ├── 6.txt │ │ ├── 7.txt │ │ ├── 8.txt │ │ └── 9.txt │ ├── full_description.txt │ ├── poeditor.json │ └── short_description.txt │ └── zh-CN │ ├── changelogs │ ├── 10.txt │ ├── 11.txt │ ├── 12.txt │ ├── 13.txt │ ├── 14.txt │ ├── 4.txt │ ├── 5.txt │ ├── 6.txt │ ├── 7.txt │ ├── 8.txt │ └── 9.txt │ ├── full_description.txt │ ├── images │ ├── phoneScreenshots │ │ ├── 1_1602867430354.png │ │ └── 2_1602867431388.png │ ├── sevenInchScreenshots │ │ ├── 1_1602869534857.png │ │ └── 2_1602869535647.png │ └── tenInchScreenshots │ │ ├── 1_1602870140345.png │ │ └── 2_1602870141721.png │ ├── poeditor.json │ └── short_description.txt ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── package-lock.json ├── package.json ├── pull_contributors.js └── settings.gradle /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: https://paypal.me/JonasBern 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help improve FakeStandby 4 | title: "[BUG]" 5 | labels: bug 6 | assignees: JonasBernard 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Device information:** 27 | - Device: [e.g. Galaxy S10] 28 | - Android Version: [e.g. 9] 29 | - App Version [e.g. 1.1] 30 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: true 2 | contact_links: 3 | - name: Website 4 | url: https://jonasbernard.github.io/FakeStandby/ 5 | about: Before asking a question you can search for information on the project website. 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest a feature for this project 4 | title: "[ENHANCEMENT]" 5 | labels: enhancement 6 | assignees: JonasBernard 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the idea you have** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | /.idea/sonarlint 11 | .idea/misc.xml 12 | .DS_Store 13 | /build 14 | /captures 15 | .externalNativeBuild 16 | /keys 17 | /app/google-services.json 18 | 19 | app/src/main/java/android/jonas/fakestandby/utils/Secrets.java 20 | 21 | fastlane/metadata/android/screenshots.html 22 | fastlane/report.xml 23 | 24 | whatsnew/ 25 | 26 | node_modules/ 27 | .vscode/ 28 | 29 | ci/.env -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/deploymentTargetDropDown.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/dictionaries/jonas.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | jonasbernard 5 | onboarding 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 19 | 20 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/jarRepositories.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 19 | 20 | 24 | 25 | 29 | 30 | 34 | 35 | -------------------------------------------------------------------------------- /.idea/kotlinc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /.idea/migrations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CONTRIBUTORS.template.md: -------------------------------------------------------------------------------- 1 | # Contributors 2 | 3 | > I want to thank all contributors that help to develop this app! 4 | 5 | ## Code contributors 6 | 7 | > Code contributions are the most powerful change at a projects heart. 8 | > Those require very precise and good work. Thanks to all code contributors! 9 | 10 | {% for c in githubContributors %} 11 | * [{{ c.login }}]({{ c.html_url }}) ({% if c.contributions > 1 %}{{ c.contributions }} contributions{% else%}1 contribution{% endif%}) {% endfor %} 12 | 13 | ## POEditor (Translation) 14 | 15 | > Special thanks also goes to the great people helping with the translations! 16 | > The app is now already translated into {{ languages.length }} languages! 17 | 18 | {% for c in poeditorContributors %} 19 | * {{ c.name }} {% endfor %} -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "fastlane" -------------------------------------------------------------------------------- /PROJECT_AIMS.md: -------------------------------------------------------------------------------- 1 | # Project aims 2 | 3 | ## What users should receive 4 | 5 | The projects goal is to provide a simple, easy to use, minimal and performant Android application to save battery life. 6 | This is done by coding a material desgin android app. The app has consistent design and and the project logo as its icon. 7 | Store information and website content must also fit to the branding of the project. 8 | 9 | ## Code standards 10 | 11 | The code for this project is as minimal as possible. 12 | It is modular, scalable and documented as well as following code formatting standards. 13 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/ad/release/app-ad-release.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/ad/release/app-ad-release.apk -------------------------------------------------------------------------------- /app/ad/release/output.json: -------------------------------------------------------------------------------- 1 | [{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":3,"versionName":"1.2.0-ad","enabled":true,"outputFile":"app-ad-release.apk","fullName":"adRelease","baseName":"ad-release","dirName":""},"path":"app-ad-release.apk","properties":{}}] -------------------------------------------------------------------------------- /app/adfree/release/app-adfree-release.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/adfree/release/app-adfree-release.apk -------------------------------------------------------------------------------- /app/adfree/release/output.json: -------------------------------------------------------------------------------- 1 | [{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":3,"versionName":"1.2.0-adfree","enabled":true,"outputFile":"app-adfree-release.apk","fullName":"adfreeRelease","baseName":"adfree-release","dirName":""},"path":"app-adfree-release.apk","properties":{}}] -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /app/release/FakeStandby_v1.0_release.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/release/FakeStandby_v1.0_release.apk -------------------------------------------------------------------------------- /app/release/FakeStandby_v1.1_release.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/release/FakeStandby_v1.1_release.apk -------------------------------------------------------------------------------- /app/release/FakeStandby_v1.1_release_(target_v28).apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/release/FakeStandby_v1.1_release_(target_v28).apk -------------------------------------------------------------------------------- /app/release/FakeStandby_v1.2.0_release.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/release/FakeStandby_v1.2.0_release.apk -------------------------------------------------------------------------------- /app/release/output.json: -------------------------------------------------------------------------------- 1 | [{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":3,"versionName":"1.2","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release","dirName":""},"path":"app-release.apk","properties":{}}] -------------------------------------------------------------------------------- /app/src/ad/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/adDebug/java/android/jonas/fakestandby/utils/Secrets.java: -------------------------------------------------------------------------------- 1 | package android.jonas.fakestandby.utils; 2 | 3 | public class Secrets { 4 | 5 | public static class Ads { 6 | public static String BANNER_ID = "ca-app-pub-3940256099942544/6300978111"; 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /app/src/adRelease/java/android/jonas/fakestandby/utils/Secrets.java: -------------------------------------------------------------------------------- 1 | package android.jonas.fakestandby.utils; 2 | 3 | public class Secrets { 4 | 5 | public static class Ads { 6 | public static String BANNER_ID = "ca-app-pub-8850353377499245/3904732321"; 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /app/src/adfree/res/layout/activity_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 16 | 17 | 25 | 26 | 32 | 33 | 34 | 35 | 36 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /app/src/androidTest/java/android/jonas/fakestandby/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package android.jonas.fakestandby; 2 | 3 | import android.content.Context; 4 | import android.jonas.fakestandby.settings.SettingsActivity; 5 | 6 | import androidx.test.InstrumentationRegistry; 7 | import androidx.test.rule.ActivityTestRule; 8 | import androidx.test.runner.AndroidJUnit4; 9 | import org.junit.ClassRule; 10 | import org.junit.Rule; 11 | import org.junit.Test; 12 | import org.junit.runner.RunWith; 13 | 14 | import tools.fastlane.screengrab.Screengrab; 15 | import tools.fastlane.screengrab.UiAutomatorScreenshotStrategy; 16 | import tools.fastlane.screengrab.locale.LocaleTestRule; 17 | import static androidx.test.espresso.Espresso.onView; 18 | import static androidx.test.espresso.action.ViewActions.click; 19 | import static androidx.test.espresso.matcher.ViewMatchers.withText; 20 | import static org.junit.Assert.*; 21 | 22 | /** 23 | * Instrumented test, which will execute on an Android device. 24 | * 25 | * @see Testing documentation 26 | */ 27 | @RunWith(AndroidJUnit4.class) 28 | public class ExampleInstrumentedTest { 29 | @Test 30 | public void useAppContext() { 31 | // Context of the app under test. 32 | Context appContext = InstrumentationRegistry.getTargetContext(); 33 | 34 | assertEquals("android.jonas.fakestandby", appContext.getPackageName()); 35 | } 36 | 37 | @ClassRule 38 | public static final LocaleTestRule localeTestRule = new LocaleTestRule(); 39 | 40 | @Rule 41 | public ActivityTestRule activityRule 42 | = new ActivityTestRule( 43 | SettingsActivity.class, 44 | true, // initialTouchMode 45 | true); // launchActivity. False to customize the intent 46 | 47 | 48 | @Test 49 | public void setup() { 50 | Screengrab.setDefaultScreenshotStrategy(new UiAutomatorScreenshotStrategy()); 51 | } 52 | 53 | @Test 54 | public void takeScreenshots() throws NoSuchMethodException { 55 | Screengrab.screenshot("1"); 56 | 57 | onView(withText(R.string.close_option_title)).perform(click()); 58 | 59 | Screengrab.screenshot("2"); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/java/android/jonas/fakestandby/actions/StartOverlay.java: -------------------------------------------------------------------------------- 1 | package android.jonas.fakestandby.actions; 2 | 3 | import android.content.Intent; 4 | import android.jonas.fakestandby.permissions.PermissionUtils; 5 | import android.jonas.fakestandby.service.AccessibilityOverlayService; 6 | import android.jonas.fakestandby.utils.Constants; 7 | import android.os.Bundle; 8 | import android.util.Log; 9 | 10 | import androidx.annotation.Nullable; 11 | import androidx.appcompat.app.AppCompatActivity; 12 | 13 | public class StartOverlay extends AppCompatActivity { 14 | 15 | @Override 16 | protected void onCreate(@Nullable Bundle savedInstanceState) { 17 | if(checkConditions()) { 18 | Intent intent = new Intent(getApplicationContext(), AccessibilityOverlayService.class); 19 | intent.putExtra(Constants.Intent.Extra.OverlayAction.KEY, Constants.Intent.Extra.OverlayAction.SHOW); 20 | startService(intent); 21 | 22 | Log.i(getClass().getName(), "Sent intent to show overlay"); 23 | } 24 | 25 | finish(); 26 | 27 | super.onCreate(savedInstanceState); 28 | 29 | } 30 | 31 | public boolean checkConditions() { 32 | Log.i(getClass().getName(), "Checking if required permissions are given and service is running..."); 33 | if (!PermissionUtils.checkAccessibilityServiceRunning(this)) { 34 | return false; 35 | } 36 | if (!PermissionUtils.checkPermissionOverlay(this)) { 37 | return false; 38 | } 39 | Log.i(getClass().getName(), "Everything is fine. Overlay can be launched."); 40 | return true; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/android/jonas/fakestandby/actions/StopOverlay.java: -------------------------------------------------------------------------------- 1 | package android.jonas.fakestandby.actions; 2 | 3 | import androidx.appcompat.app.AppCompatActivity; 4 | 5 | import android.content.Intent; 6 | import android.jonas.fakestandby.service.AccessibilityOverlayService; 7 | import android.jonas.fakestandby.utils.Constants; 8 | import android.os.Bundle; 9 | import android.util.Log; 10 | 11 | public class StopOverlay extends AppCompatActivity { 12 | 13 | @Override 14 | protected void onCreate(Bundle savedInstanceState) { 15 | Intent intent = new Intent(getApplicationContext(), AccessibilityOverlayService.class); 16 | intent.putExtra(Constants.Intent.Extra.OverlayAction.KEY, Constants.Intent.Extra.OverlayAction.HIDE); 17 | startService(intent); 18 | 19 | Log.i(getClass().getName(), "Sent intent to hide overlay"); 20 | 21 | finish(); 22 | 23 | super.onCreate(savedInstanceState); 24 | } 25 | } -------------------------------------------------------------------------------- /app/src/main/java/android/jonas/fakestandby/onboarding/OnBoardingActivity.java: -------------------------------------------------------------------------------- 1 | package android.jonas.fakestandby.onboarding; 2 | 3 | import android.jonas.fakestandby.R; 4 | import android.os.Bundle; 5 | import android.util.TypedValue; 6 | 7 | import androidx.fragment.app.Fragment; 8 | 9 | import com.github.appintro.AppIntro; 10 | import com.github.appintro.AppIntroFragment; 11 | import com.github.appintro.AppIntroPageTransformerType; 12 | 13 | public class OnBoardingActivity extends AppIntro { 14 | 15 | @Override 16 | protected void onCreate(Bundle savedInstanceState) { 17 | super.onCreate(savedInstanceState); 18 | 19 | setTransformer(new AppIntroPageTransformerType.Parallax(1.0, -1.0, 2.0)); 20 | setColorTransitionsEnabled(true); 21 | setWizardMode(true); 22 | setImmersiveMode(); 23 | setSystemBackButtonLocked(true); 24 | 25 | TypedValue typedValue = new TypedValue(); 26 | getTheme().resolveAttribute(R.attr.colorPrimary, typedValue, true); 27 | int color = typedValue.data; 28 | 29 | // addSlide(new WelcomeFragment( 30 | // this, 31 | // getString(R.string.visit_website_title), 32 | // getString(R.string.visit_website_summary), 33 | // R.drawable.fakestandby_overlay_preview, 34 | // color 35 | // )); 36 | 37 | addSlide(AppIntroFragment.newInstance( 38 | getString(R.string.visit_website_title), 39 | getString(R.string.visit_website_summary), 40 | R.drawable.app_icon_adaptive, 41 | getColor(R.color.deep_orange) 42 | )); 43 | 44 | addSlide(AppIntroFragment.newInstance( 45 | getString(R.string.visit_website_title), 46 | getString(R.string.visit_website_summary), 47 | R.drawable.app_icon_adaptive, 48 | getColor(R.color.light_green) 49 | )); 50 | } 51 | 52 | @Override 53 | protected void onDonePressed(Fragment currentFragment) { 54 | super.onDonePressed(currentFragment); 55 | 56 | finish(); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/android/jonas/fakestandby/permissions/AccessibilityServiceNotEnabledDialog.java: -------------------------------------------------------------------------------- 1 | package android.jonas.fakestandby.permissions; 2 | 3 | import android.app.Dialog; 4 | import android.os.Bundle; 5 | 6 | import androidx.annotation.NonNull; 7 | import androidx.annotation.Nullable; 8 | import androidx.fragment.app.DialogFragment; 9 | 10 | public class AccessibilityServiceNotEnabledDialog extends DialogFragment { 11 | 12 | @NonNull 13 | @Override 14 | public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { 15 | return PermissionUtils.getAccessibilityServiceNotEnabledAlertDialog(getContext()); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/android/jonas/fakestandby/permissions/AccessibilityServiceNotRunningDialog.java: -------------------------------------------------------------------------------- 1 | package android.jonas.fakestandby.permissions; 2 | 3 | import android.app.Dialog; 4 | import android.os.Bundle; 5 | 6 | import androidx.annotation.NonNull; 7 | import androidx.annotation.Nullable; 8 | import androidx.fragment.app.DialogFragment; 9 | 10 | public class AccessibilityServiceNotRunningDialog extends DialogFragment { 11 | 12 | @NonNull 13 | @Override 14 | public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { 15 | return PermissionUtils.getAccessibilityServiceNotRunningAlertDialog(getContext()); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/android/jonas/fakestandby/permissions/OverlayPermissionRequiredDialog.java: -------------------------------------------------------------------------------- 1 | package android.jonas.fakestandby.permissions; 2 | 3 | import android.app.Dialog; 4 | import android.os.Bundle; 5 | 6 | import androidx.annotation.NonNull; 7 | import androidx.annotation.Nullable; 8 | import androidx.fragment.app.DialogFragment; 9 | 10 | public class OverlayPermissionRequiredDialog extends DialogFragment { 11 | 12 | @NonNull 13 | @Override 14 | public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { 15 | return PermissionUtils.getPermissionOverlayRequestAlertDialog(getContext()); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/android/jonas/fakestandby/service/PhoneLockReceiver.java: -------------------------------------------------------------------------------- 1 | package android.jonas.fakestandby.service; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.jonas.fakestandby.utils.Constants; 7 | import android.jonas.fakestandby.utils.Utils; 8 | import android.os.PowerManager; 9 | import android.util.Log; 10 | 11 | public class PhoneLockReceiver extends BroadcastReceiver { 12 | 13 | @Override 14 | public void onReceive(Context context, Intent intent) { 15 | if (Utils.isOverlayShowing(context)) { 16 | Intent new_intent = new Intent(context, AccessibilityOverlayService.class); 17 | new_intent.putExtra(Constants.Intent.Extra.OverlayAction.KEY, Constants.Intent.Extra.OverlayAction.HIDE_IMMEDIATELY); 18 | context.startService(new_intent); 19 | 20 | Log.i(getClass().getName(), "Sent intent to hide overlay"); 21 | 22 | PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); 23 | PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "fakestandby:overlaystopped"); 24 | wakeLock.acquire(10000); 25 | wakeLock.release(); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/android/jonas/fakestandby/settings/LicenseActivity.java: -------------------------------------------------------------------------------- 1 | package android.jonas.fakestandby.settings; 2 | 3 | import androidx.appcompat.app.AppCompatActivity; 4 | 5 | import android.jonas.fakestandby.R; 6 | import android.os.Bundle; 7 | 8 | public class LicenseActivity extends AppCompatActivity { 9 | 10 | @Override 11 | protected void onCreate(Bundle savedInstanceState) { 12 | super.onCreate(savedInstanceState); 13 | setContentView(R.layout.activity_license); 14 | 15 | getSupportActionBar().setDisplayHomeAsUpEnabled(true); 16 | getSupportActionBar().setDisplayShowHomeEnabled(true); 17 | } 18 | 19 | @Override 20 | public boolean onSupportNavigateUp() { 21 | onBackPressed(); 22 | return true; 23 | } 24 | } -------------------------------------------------------------------------------- /app/src/main/java/android/jonas/fakestandby/utils/OnHideFinishedListener.java: -------------------------------------------------------------------------------- 1 | package android.jonas.fakestandby.utils; 2 | 3 | public interface OnHideFinishedListener { 4 | void onHideFinished(); 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/android/jonas/fakestandby/utils/OnSwipeListener.java: -------------------------------------------------------------------------------- 1 | package android.jonas.fakestandby.utils; 2 | 3 | import android.content.Context; 4 | import android.view.GestureDetector; 5 | import android.view.GestureDetector.SimpleOnGestureListener; 6 | import android.view.MotionEvent; 7 | import android.view.View; 8 | import android.view.View.OnTouchListener; 9 | 10 | public class OnSwipeListener implements OnTouchListener { 11 | 12 | private final GestureDetector gestureDetector; 13 | private final OnTouchListener parent; 14 | 15 | public OnSwipeListener (Context context, int height, OnTouchListener parent){ 16 | gestureDetector = new GestureDetector(context, new GestureListener(height / 2)); 17 | this.parent = parent; 18 | } 19 | 20 | @Override 21 | public boolean onTouch(View v, MotionEvent event) { 22 | this.parent.onTouch(v, event); 23 | return gestureDetector.onTouchEvent(event); 24 | } 25 | 26 | private final class GestureListener extends SimpleOnGestureListener { 27 | 28 | private final int SWIPE_THRESHOLD; 29 | private final int SWIPE_VELOCITY_THRESHOLD = 1000; 30 | 31 | public GestureListener(int SWIPE_THRESHOLD) { 32 | this.SWIPE_THRESHOLD = SWIPE_THRESHOLD; 33 | } 34 | 35 | @Override 36 | public boolean onDown(MotionEvent e) { 37 | return true; 38 | } 39 | 40 | @Override 41 | public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 42 | boolean result = false; 43 | try { 44 | float diffY = e2.getY() - e1.getY(); 45 | if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD && velocityY < 0) { 46 | onSwipeTop(Math.abs(velocityY)); 47 | result = true; 48 | } else { 49 | onSwipeFail(); 50 | result = false; 51 | } 52 | } catch (Exception exception) { 53 | exception.printStackTrace(); 54 | } 55 | return result; 56 | } 57 | } 58 | 59 | public void onSwipeFail() {} 60 | 61 | public void onSwipeTop(float velocity) {} 62 | } -------------------------------------------------------------------------------- /app/src/main/java/android/jonas/fakestandby/utils/OverlayCancelListener.java: -------------------------------------------------------------------------------- 1 | package android.jonas.fakestandby.utils; 2 | 3 | public interface OverlayCancelListener { 4 | void onCancel(); 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/android/jonas/fakestandby/utils/Utils.java: -------------------------------------------------------------------------------- 1 | package android.jonas.fakestandby.utils; 2 | 3 | import android.content.Context; 4 | import android.content.SharedPreferences; 5 | 6 | public class Utils { 7 | 8 | private static Boolean firstOpen = null; 9 | /** 10 | * Checks if the user is opening the app for the first time. 11 | * Note that this method should be placed inside an activity and it can be called multiple times. 12 | * @return boolean 13 | */ 14 | public static boolean isFirstOpen(Context context) { 15 | if (firstOpen == null) { 16 | SharedPreferences mPreferences = context.getSharedPreferences(Constants.Preferences.PREFERENCE_NAME, Context.MODE_PRIVATE); 17 | firstOpen = mPreferences.getBoolean(Constants.Preferences.FIRST_OPEN, true); 18 | if (firstOpen) { 19 | SharedPreferences.Editor editor = mPreferences.edit(); 20 | editor.putBoolean(Constants.Preferences.FIRST_OPEN, false); 21 | editor.commit(); 22 | } 23 | } 24 | return firstOpen; 25 | } 26 | 27 | public static boolean isOverlayShowing(Context context) { 28 | return context.getSharedPreferences(Constants.Preferences.PREFERENCE_NAME, Context.MODE_PRIVATE).getBoolean(Constants.Preferences.IS_OVERLAY_SHOWING, false); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/res/color/secondary_text_colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/color/text_colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v26/app_icon_adaptive.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_code_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_copyright_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_open_in_new_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_public_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_settings_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_translate_24.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_license.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 16 | 17 | 22 | 23 | 30 | 31 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/app_icon_final.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/app_icon_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-hdpi/app_icon_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/app_icon_final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-hdpi/app_icon_final.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/app_icon_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-hdpi/app_icon_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-mdpi/app_icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/app_icon_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-mdpi/app_icon_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/app_icon_final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-mdpi/app_icon_final.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/app_icon_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-mdpi/app_icon_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/simple_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-mdpi/simple_icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/simple_icon_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-mdpi/simple_icon_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/simple_icon_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-mdpi/simple_icon_36dp.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/simple_tile_icon_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-mdpi/simple_tile_icon_36dp.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/app_icon_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-xhdpi/app_icon_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/app_icon_final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-xhdpi/app_icon_final.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/app_icon_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-xhdpi/app_icon_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/app_icon_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-xxxhdpi/app_icon_background.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/app_icon_final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-xxxhdpi/app_icon_final.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/app_icon_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JonasBernard/FakeStandby/08774f7ba1e2558c8c80141ea17972624a2990df/app/src/main/res/mipmap-xxxhdpi/app_icon_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/values-bn/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | "FakeStandby Service" 4 | "FakeStandby" 5 | -------------------------------------------------------------------------------- /app/src/main/res/values-fa/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | "FakeStandby Service" 4 | "گشودن ساماندهی" 5 | 6 | 7 | 8 | "ساماندهی" 9 | "روش خروج" 10 | 11 | 12 | "لمس صفحه با چهار انگشت به صورت همزمان" 13 | "لمس از پایین به بالا" 14 | 15 | 16 | 17 | "یاری برای ترگومه برنامه" 18 | "FakeStandby" 19 | 20 | 21 | "نگریدن به وبگاه برنامه" 22 | "گواهینامه همگانی فراگیر گنو ۳.۰" 23 | "گواهینامه" 24 | "نگریدن به بُن‌کد" 25 | "گشودن ساماندهی دسترس‌پذیری" 26 | "گشودن ساماندهی دیگر" 27 | "آغاز FakeStandby" 28 | "ایست FakeStandby" 29 | -------------------------------------------------------------------------------- /app/src/main/res/values-nl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | "FakeStandby Service" 4 | "Open Instellingen" 5 | "Toestemming vereist" 6 | "Foutmeldingen en waarschuwingen" 7 | 8 | 9 | "Sommige functies zijn niet ingeschakeld" 10 | "Instellingen" 11 | "FakeStandby opties" 12 | 13 | 14 | "Verdere informatie" 15 | "FakeStandby" 16 | -------------------------------------------------------------------------------- /app/src/main/res/values-sw/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | "Bonyeza ili kuwasha" 4 | "FakeStandby Service" 5 | 6 | 7 | "FakeStandby inahitaji utendakazi huu ili kuwezesha kudhibiti kila skrini na kila programu. Kipengele hiki kitatumika tu kutoa utendakazi wa programu na hakitafikia, kuhifadhi, kukusanya au kushiriki data yoyote." 8 | 9 | 10 | "Baadhi ya huduma zinazohitajika hazifanyi kazi" 11 | "Baadhi ya huduma zinazohitajika hazifanyi kazi. Tafadhali zima na uwashe kifaa chako." 12 | "Fungua mipangilio" 13 | "Ruhusa inahitajika" 14 | 15 | 16 | "Programu hairuhusiwi kuonyesha mabango juu ya programu zingine. Ili kuendesha programu unahitaji kutoa ruhusa ya \\"Onyesha juu ya programu zingine\\" kwa FakeStandby. Ruhusa hiyo huwezesha programu kuonyesha maudhui juu ya maudhui ya programu nyingine. Ili kutoa ruhusa, wezesha swichi kwenye skrini ifuatayo." 17 | "Makosa na maonyo" 18 | "Mipangilio" 19 | -------------------------------------------------------------------------------- /app/src/main/res/values-uz/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | "Foydalanish tugmasini bosing" 4 | "Qalbaki" 5 | -------------------------------------------------------------------------------- /app/src/main/res/values-v25/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 24 | 25 | 42 | 43 | 47 | 48 | 25 | 26 | 27 | 45 | 46 | 50 | 51 | 23 | 24 | 40 | 41 | 45 | 46 |