12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_shortcut_toggle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/values-en/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ko-KR/full_description.txt:
--------------------------------------------------------------------------------
1 | Coffee는 기기 설정을 바꾸지 않고 디스플레이가 켜져 있게 유지할 수 있습니다. Coffee는 여러 곳에서 전환이 가능합니다.
2 | * 빠른 설정창 내 타일, Wi-Fi나 블루투스 등의 전환 버튼들이 있는 곳 안드로이드 7 이상이 필요합니다.
3 | * 앱 내의 버튼
4 | * 홈 스크린에 있는 바로가기. 사용하고 있는 런처가 지원한다면, 앱 내에서 생성할 수 있습니다.
5 |
6 | Coffee는 어시스턴트 앱으로 설정(기기 설정 => 애플리케이션 => 기본 앱 선택 => 디지털 어시스턴트 앱) 된 후 어시스턴트 호출 시 전환할 수 있습니다.
7 |
8 | Coffee는 몇몇 제조사들이 구현한 과도하게 공격적인 배터리 절전 기능으로 인해 작동하지 않을 수도 있습니다. (포코, 삼성, 샤오미 등)
9 | 이 경우 설정에서 "대체 모드"를 활성화하십시오.
--------------------------------------------------------------------------------
/fastlane/metadata/android/ja-JP/full_description.txt:
--------------------------------------------------------------------------------
1 | コーヒーは、端末の設定を変えることなく一時的にディスプレイの自動消灯を無効にできるアプリです。 コーヒーは様々な場所から切り替えられます。
2 | * クイック設定(Wi-FiやBluetoothなどの切り替えボタンがある場所)のタイル。 Android 7以上が必要です。
3 | * アプリ内にあるボタン。
4 | * ホーム画面のショートカット。 お使いのランチャーでサポートされている場合に、アプリ内から作成できます。
5 |
6 | コーヒーはアシストアプリとして設定できます(設定 → アプリ → デフォルトのアプリ → デジタル アシスタント アプリ)。アシストが呼ばれた際、コーヒーのオン・オフが切り替わります。
7 |
8 | 一部メーカー(Poco、Samsung、Xiaomiなど)の端末には、このアプリを壊してしまう過度に強力なバッテリー節約機能が搭載されていることがあります。
9 | その場合、設定で「代替モード」を有効にしてください。
--------------------------------------------------------------------------------
/app/src/main/res/values-af/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/values-ji/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/values-no/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/values-sr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/values-vi/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_brightness_medium_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/voice_interaction_service.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/values-v27/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_preference.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/values-iw/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | הגדרות
10 |
11 | לא נמצא דפדפן
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_baseline_access_time_24.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/preference_material_switch.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: Build App
2 |
3 | on:
4 | push:
5 | branches: [ "main" ]
6 | pull_request:
7 | branches: [ "main" ]
8 | schedule:
9 | - cron: '34 19 * * 6'
10 |
11 | permissions: {}
12 |
13 | jobs:
14 | build:
15 | runs-on: ubuntu-latest
16 |
17 | steps:
18 | - uses: actions/checkout@v4
19 |
20 | - name: Setup Java
21 | uses: actions/setup-java@v4
22 | with:
23 | distribution: 'adopt'
24 | java-version: 17
25 |
26 | - name: Validate Gradle Wrapper
27 | uses: gradle/wrapper-validation-action@v3.5.0
28 |
29 | - name: Build
30 | run: bash gradlew build
31 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ar-SA/full_description.txt:
--------------------------------------------------------------------------------
1 | تطبيق Coffe يسمح لك بإبقاء الشاشة مستيقظة دون الحاجة الى تغيير اعدادات الجهاز. يمكن اطفائها/تشغيلها في أماكن مختلفة:
2 | * مربع في الإعدادات السريعة، المكان الذي يحمل مفاتيح التبديل على سبيل المثال Wi-Fi والبلوتوث. يتطلب أندرويد 7 أو أعلى.
3 | * زر في التطبيق نفسه
4 | * اختصار على شاشتك الرئيسية. يمكن إنشاؤه في التطبيق، إذا كان المشغل يدعمه.
5 |
6 | القهوة يمكن تعيينها كتطبيق مساعد (إعدادات الجهاز => التطبيقات => التطبيقات الافتراضية => مساعدة التطبيق) وتغييرها عند استدعاء المساعدة.
7 |
8 | قد لا يعمل Coffee بسبب موفر بطارية المفرط، وهو موفر تنفذه بعض الشركات المصنعة (بما في ذلك Poco وSamsung وXiaomi).
9 | في تلك الحالة يرجى تمكين "الوضع البديل" في الإعدادات.
--------------------------------------------------------------------------------
/.github/workflows/stale.yml:
--------------------------------------------------------------------------------
1 | name: 'Close stale issues and PRs'
2 | on:
3 | schedule:
4 | - cron: '30 1 * * *'
5 | workflow_dispatch:
6 |
7 | permissions:
8 | issues: write
9 |
10 | jobs:
11 | stale:
12 | runs-on: ubuntu-latest
13 | steps:
14 | - uses: actions/stale@v9
15 | with:
16 | days-before-stale: 360
17 | days-before-close: 7
18 | exempt-issue-labels: 'acknowledged'
19 | stale-issue-message: 'This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Also see https://github.com/mueller-ma/Coffee#maintenance-notice'
20 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: enhancement
6 | assignees: ''
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 solution you'd like**
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 |
19 | **Additional context**
20 | Add any other context or screenshots about the feature request here.
21 |
--------------------------------------------------------------------------------
/app/src/main/res/values/arrays.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 0
5 | 5
6 | 15
7 | 30
8 | 60
9 | 120
10 |
11 |
12 |
13 | @string/timeout_infinity
14 | @string/timeout_5_minutes
15 | @string/timeout_15_minutes
16 | @string/timeout_30_minutes
17 | @string/timeout_60_minutes
18 | @string/timeout_120_minutes
19 |
20 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/af-ZA/full_description.txt:
--------------------------------------------------------------------------------
1 | Coffee allows you to keep the display awake without having to change the device settings. It can be toggled at various places:
2 | * A tile in the quick settings, the place that holds the toggles for e.g. Wi-Fi and Bluetooth. Requires Android 7 or higher.
3 | * A button in the app itself
4 | * A shortcut on your home screen. It can be created in the app, if your launcher supports it.
5 |
6 | Coffee can be set as assist app (Device settings => Apps => Default apps => Assist app) and changes it's state when assist is called.
7 |
8 | Coffee may not work because of an overly aggressive battery saver that is implemented by some OEMs (including Poco, Samsung and Xiaomi).
9 | In that case please enable "Alternate mode" in the settings.
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/full_description.txt:
--------------------------------------------------------------------------------
1 | Coffee allows you to keep the display awake without having to change the device settings. It can be toggled at various places:
2 | * A tile in the quick settings, the place that holds the toggles for e.g. Wi-Fi and Bluetooth. Requires Android 7 or higher.
3 | * A button in the app itself
4 | * A shortcut on your home screen. It can be created in the app, if your launcher supports it.
5 |
6 | Coffee can be set as assist app (Device settings => Apps => Default apps => Assist app) and changes it's state when assist is called.
7 |
8 | Coffee may not work because of an overly aggressive battery saver that is implemented by some OEMs (including Poco, Samsung and Xiaomi).
9 | In that case please enable "Alternate mode" in the settings.
--------------------------------------------------------------------------------
/fastlane/metadata/android/fi-FI/full_description.txt:
--------------------------------------------------------------------------------
1 | Kahvin avulla voit pitää näytön hereillä tarvitsematta muuttaa laitteen asetuksia. Se voidaan vaihtaa eri paikoilla:
2 | * Levy pika-asetuksissa, paikka, joka pitää toggles esim. Wi-Fi ja Bluetooth. Vaatii Android 7:n tai uudemman.
3 | * Itse sovelluksessa oleva painike
4 | * Oikopolku aloitusnäytölläsi. Se voidaan luoda sovelluksessa, jos käynnistin tukee sitä.
5 |
6 | Kahvia voidaan asettaa apuna sovellus (Laitteen asetukset => Sovellukset => Oletus sovellukset => Assist app) ja muuttaa sen tilaa, kun apua kutsutaan.
7 |
8 | Kahvi ei välttämättä toimi joidenkin OEM-valmistajien (Poco, Samsung ja Xiaomi) toteuttaman liian aggressiivisen akunsäästäjän vuoksi.
9 | Tässä tapauksessa ota käyttöön "Vaihtoehtoinen tila" asetuksista.
--------------------------------------------------------------------------------
/fastlane/metadata/android/he-IL/full_description.txt:
--------------------------------------------------------------------------------
1 | Coffee allows you to keep the display awake without having to change the device settings. It can be toggled at various places:
2 | * A tile in the quick settings, the place that holds the toggles for e.g. Wi-Fi and Bluetooth. Requires Android 7 or higher.
3 | * A button in the app itself
4 | * A shortcut on your home screen. It can be created in the app, if your launcher supports it.
5 |
6 | Coffee can be set as assist app (Device settings => Apps => Default apps => Assist app) and changes it's state when assist is called.
7 |
8 | Coffee may not work because of an overly aggressive battery saver that is implemented by some OEMs (including Poco, Samsung and Xiaomi).
9 | In that case please enable "Alternate mode" in the settings.
--------------------------------------------------------------------------------
/fastlane/metadata/android/id-ID/full_description.txt:
--------------------------------------------------------------------------------
1 | Coffee allows you to keep the display awake without having to change the device settings. It can be toggled at various places:
2 | * A tile in the quick settings, the place that holds the toggles for e.g. Wi-Fi and Bluetooth. Requires Android 7 or higher.
3 | * A button in the app itself
4 | * A shortcut on your home screen. It can be created in the app, if your launcher supports it.
5 |
6 | Coffee can be set as assist app (Device settings => Apps => Default apps => Assist app) and changes it's state when assist is called.
7 |
8 | Coffee may not work because of an overly aggressive battery saver that is implemented by some OEMs (including Poco, Samsung and Xiaomi).
9 | In that case please enable "Alternate mode" in the settings.
--------------------------------------------------------------------------------
/fastlane/metadata/android/no-NO/full_description.txt:
--------------------------------------------------------------------------------
1 | Coffee allows you to keep the display awake without having to change the device settings. It can be toggled at various places:
2 | * A tile in the quick settings, the place that holds the toggles for e.g. Wi-Fi and Bluetooth. Requires Android 7 or higher.
3 | * A button in the app itself
4 | * A shortcut on your home screen. It can be created in the app, if your launcher supports it.
5 |
6 | Coffee can be set as assist app (Device settings => Apps => Default apps => Assist app) and changes it's state when assist is called.
7 |
8 | Coffee may not work because of an overly aggressive battery saver that is implemented by some OEMs (including Poco, Samsung and Xiaomi).
9 | In that case please enable "Alternate mode" in the settings.
--------------------------------------------------------------------------------
/fastlane/metadata/android/sr-SP/full_description.txt:
--------------------------------------------------------------------------------
1 | Coffee allows you to keep the display awake without having to change the device settings. It can be toggled at various places:
2 | * A tile in the quick settings, the place that holds the toggles for e.g. Wi-Fi and Bluetooth. Requires Android 7 or higher.
3 | * A button in the app itself
4 | * A shortcut on your home screen. It can be created in the app, if your launcher supports it.
5 |
6 | Coffee can be set as assist app (Device settings => Apps => Default apps => Assist app) and changes it's state when assist is called.
7 |
8 | Coffee may not work because of an overly aggressive battery saver that is implemented by some OEMs (including Poco, Samsung and Xiaomi).
9 | In that case please enable "Alternate mode" in the settings.
--------------------------------------------------------------------------------
/fastlane/metadata/android/vi-VN/full_description.txt:
--------------------------------------------------------------------------------
1 | Coffee allows you to keep the display awake without having to change the device settings. It can be toggled at various places:
2 | * A tile in the quick settings, the place that holds the toggles for e.g. Wi-Fi and Bluetooth. Requires Android 7 or higher.
3 | * A button in the app itself
4 | * A shortcut on your home screen. It can be created in the app, if your launcher supports it.
5 |
6 | Coffee can be set as assist app (Device settings => Apps => Default apps => Assist app) and changes it's state when assist is called.
7 |
8 | Coffee may not work because of an overly aggressive battery saver that is implemented by some OEMs (including Poco, Samsung and Xiaomi).
9 | In that case please enable "Alternate mode" in the settings.
--------------------------------------------------------------------------------
/fastlane/metadata/android/yi-DE/full_description.txt:
--------------------------------------------------------------------------------
1 | Coffee allows you to keep the display awake without having to change the device settings. It can be toggled at various places:
2 | * A tile in the quick settings, the place that holds the toggles for e.g. Wi-Fi and Bluetooth. Requires Android 7 or higher.
3 | * A button in the app itself
4 | * A shortcut on your home screen. It can be created in the app, if your launcher supports it.
5 |
6 | Coffee can be set as assist app (Device settings => Apps => Default apps => Assist app) and changes it's state when assist is called.
7 |
8 | Coffee may not work because of an overly aggressive battery saver that is implemented by some OEMs (including Poco, Samsung and Xiaomi).
9 | In that case please enable "Alternate mode" in the settings.
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-TW/full_description.txt:
--------------------------------------------------------------------------------
1 | Coffee allows you to keep the display awake without having to change the device settings. It can be toggled at various places:
2 | * A tile in the quick settings, the place that holds the toggles for e.g. Wi-Fi and Bluetooth. Requires Android 7 or higher.
3 | * A button in the app itself
4 | * A shortcut on your home screen. It can be created in the app, if your launcher supports it.
5 |
6 | Coffee can be set as assist app (Device settings => Apps => Default apps => Assist app) and changes it's state when assist is called.
7 |
8 | Coffee may not work because of an overly aggressive battery saver that is implemented by some OEMs (including Poco, Samsung and Xiaomi).
9 | In that case please enable "Alternate mode" in the settings.
--------------------------------------------------------------------------------
/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/nb-NO/full_description.txt:
--------------------------------------------------------------------------------
1 | Kaffe lar deg holde skjermen våken uten å måtte endre enhetsinnstillingene. Det kan veksles på ulike steder:
2 | * En flis i hurtiginnstillingene, stedet som holder vektene for eksempel Wi-Fi og Bluetooth. Støttes bare av Android 7 ovenfor.
3 | * En knapp i selve appen
4 | * En snarvei på hjemmeskjermen din. Den kan opprettes i appen, hvis din launcher støtter den.
5 |
6 | Kaffe kan stilles inn som assistanseapp (enhetsinnstillinger => Apper => Standardapper => Assist app) og endrer tilstand når hjelpen kalles.
7 |
8 | Koffee virker kanskje ikke på grunn av en for aggressiv batterisparer som er implementert av en del OEMs (inkludert Poco, Samsung og Xiaomi).
9 | I dette tilfellet må du aktivere "Alternativ modus" i innstillingene.
--------------------------------------------------------------------------------
/fastlane/metadata/android/sv-SE/full_description.txt:
--------------------------------------------------------------------------------
1 | Kaffe kan du hålla skärmen vaken utan att behöva ändra enhetens inställningar. Det kan växlas på olika platser:
2 | * En bricka i de snabba inställningarna, den plats som håller växlarna för t.ex. Wi-Fi och Bluetooth. Kräver Android 7 eller högre.
3 | * En knapp i själva appen
4 | * En genväg på startskärmen. Det kan skapas i appen, om din launcher stöder det.
5 |
6 | Kaffe kan ställas in som assistansapp (Enhetsinställningar => Appar => Standardappar => Hjälparapp) och ändrar status när assistenten rings.
7 |
8 | Kaffe kanske inte fungerar på grund av en alltför aggressiv batterisparare som implementeras av vissa OEM-tillverkare (inklusive Poco, Samsung och Xiaomi).
9 | I så fall vänligen aktivera "Alternativt läge" i inställningarna.
--------------------------------------------------------------------------------
/app/src/main/java/com/github/muellerma/coffee/BootReceiver.kt:
--------------------------------------------------------------------------------
1 | package com.github.muellerma.coffee
2 |
3 | import android.content.BroadcastReceiver
4 | import android.content.Context
5 | import android.content.Intent
6 | import android.os.Build
7 | import com.github.muellerma.coffee.tiles.TimeoutTile
8 | import com.github.muellerma.coffee.tiles.ToggleTile
9 |
10 | class BootReceiver : BroadcastReceiver() {
11 | override fun onReceive(context: Context, intent: Intent) {
12 | if (intent.action != Intent.ACTION_BOOT_COMPLETED) {
13 | return
14 | }
15 |
16 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
17 | TimeoutTile.requestTileStateUpdate(context)
18 | ToggleTile.requestTileStateUpdate(context)
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/fastlane/metadata/android/tr-TR/full_description.txt:
--------------------------------------------------------------------------------
1 | Coffee, cihaz ayarlarını değiştirmek zorunda kalmadan ekranı uyanık tutmanızı sağlar. Çeşitli yerlerde değiştirilebilir:
2 | * Hızlı ayarlardaki bir kutucuk, örneğin Wi-Fi ve Bluetooth için geçişlerin bulunduğu yer. Android 7 veya üzeri gerektirir.
3 | * Uygulamanın kendi içinde bir düğme
4 | * Ana ekranınızda bir kısayol. Başlatıcınız destekliyorsa, uygulama içinde oluşturulabilir.
5 |
6 | Coffee, yardımcı uygulama olarak ayarlanabilir (Cihaz ayarları => Uygulamalar => Varsayılan uygulamalar => Asistan uygulaması) ve yardım istendiğinde durumunu değiştirir.
7 |
8 | Coffee, bazı OEM'ler (Poco, Samsung ve Xiaomi dahil) tarafından uygulanan aşırı agresif pil tasarrufu nedeniyle çalışmayabilir.
9 | Bu durumda lütfen ayarlardan "Alternatif modu" etkinleştirin.
--------------------------------------------------------------------------------
/fastlane/metadata/android/da-DK/full_description.txt:
--------------------------------------------------------------------------------
1 | Coffe giver dig mulighed for at holde skærmen vågen uden at skulle ændre enhedens indstillinger. Det kan aktiveres forskellige steder:
2 | * En flise i de hurtige indstillinger, det sted, der holder de skifter til f.eks. Wi-Fi og Bluetooth. Kræver Android 7 eller højere.
3 | * En knap i selve appen
4 | * En genvej på startskærmen. Det kan oprettes i appen, hvis din launcher understøtter det.
5 |
6 | Kaffe kan indstilles som assisteret app (Enhedsindstillinger => Apps => Standard apps => Assist app) og ændrer dens tilstand, når assistenten kaldes.
7 |
8 | Kaffe kan ikke arbejde på grund af en alt for aggressiv batteri saver, der gennemføres af nogle OEM'er (herunder Poco, Samsung og Xiaomi).
9 | I så fald skal du aktivere "Alternativ tilstand" i indstillingerne.
--------------------------------------------------------------------------------
/fastlane/metadata/android/cs-CZ/full_description.txt:
--------------------------------------------------------------------------------
1 | Káva umožňuje udržet obrazovku vzhůru, aniž byste museli měnit nastavení zařízení. Lze ji přepínat na různých místech:
2 | * Dlaždice v rychlém nastavení, místo, které drží přepínače např. pro Wi-Fi a Bluetooth. Vyžaduje Android 7 nebo vyšší.
3 | * Tlačítko v samotné aplikaci
4 | * Zkratka na domovské obrazovce. Může být vytvořena v aplikaci, pokud ji váš spouštěč podporuje.
5 |
6 | Káva může být nastavena jako asistenční aplikace (Nastavení zařízení => Aplikace => Výchozí aplikace => Asistenční aplikace) a změní stav pomoci, pokud je volána.
7 |
8 | Káva nemusí fungovat kvůli příliš agresivnímu spořiči baterií, který je implementován některými výrobci originálního vybavení (včetně Poco, Samsung a Siaomi).
9 | V takovém případě povolte v nastavení "Alternativní režim".
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_twotone_free_breakfast_24_white.xml:
--------------------------------------------------------------------------------
1 |
6 |
11 |
14 |
15 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: bug
6 | assignees: ''
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 (please complete the following information):**
27 | - Device: [e.g. Pixel 3]
28 | - Android version: [e.g. 11]
29 |
30 | **Additional context**
31 | Add any other context about the problem here.
32 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/fa-IR/full_description.txt:
--------------------------------------------------------------------------------
1 | کافه شما را قادر میسازد تا صفحهنمایش را بدون انجام تغییری در تنظیمات افزارهتان بیدار نگهدارید. میتوان آن را از مکانهای مختلفی تغییر داد:
2 | * یک دکمه در تنظیمات سریع، مکانی که دکمههایی برای تغییر حالت وایفای و بلوتوث و ... را دارد. نیاز به اندروید ۷ یا بالاتر دارد.
3 | * یک دکمه در درون خود کاره.
4 | * یک میانبر در صفحهٔ خانه. اگر راهانداز شما از آن پشتیبانی کند، میتوان آن را در کاره ایجاد کرد.
5 |
6 | قهوه را میتوان بهعنوان برنامه کمکی تنظیم کرد (تنظیمات دستگاه => برنامهها => برنامههای پیشفرض => برنامه کمکی) و هنگام فراخوانی کمک، وضعیت آن را تغییر میدهد.
7 |
8 | Coffee may not work because of an overly aggressive battery saver that is implemented by some OEMs (including Poco, Samsung and Xiaomi).
9 | In that case please enable "Alternate mode" in the settings.
--------------------------------------------------------------------------------
/fastlane/metadata/android/pl-PL/full_description.txt:
--------------------------------------------------------------------------------
1 | Kawa pozwala utrzymać wyświetlanie bez konieczności zmiany ustawień urządzenia. Można go przekierować w różnych miejscach:
2 | * Kafelek w szybkich ustawieniach, w którym znajduje się przełącznik np. Wi-Fi i Bluetooth. Wymaga Androida 7 lub wyższego.
3 | * Przycisk w samej aplikacji
4 | * Skrót na ekranie głównym. Może być utworzony w aplikacji, jeśli twój launcher wspiera aplikację.
5 |
6 | Kawa może być ustawiona jako aplikacja asystująca (Ustawienia urządzenia => Aplikacje => Domyślne aplikacje => Aplikacje asystujące) i zmienia jej stan, gdy pomoc jest wywoływana.
7 |
8 | Kawa może nie działać z powodu zbyt agresywnego oszczędzania baterii, który jest wdrażany przez niektóre OEM (w tym Poco, Samsung i Xiaomi).
9 | W takim przypadku włącz "Tryb alternatywny" w ustawieniach.
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru-RU/full_description.txt:
--------------------------------------------------------------------------------
1 | Кофе позволяет держать экран включенным без необходимости изменять настройки устройства. Его можно переключать в разных местах:
2 | * Плитка в быстрых настройках, в месте, где расположены переключатели, например, Wi-Fi и Bluetooth. Требуется Android 7 или выше.
3 | * Кнопка в самом приложении
4 | * Ярлык на главном экране. Он может быть создан в приложении, если ваш лаунчер поддерживает это.
5 |
6 | Coffee можно задать как вспомогательное приложение (Device settings => Приложения => Приложения по умолчанию => Помощник приложения) и изменять его состояние при вызове помощи.
7 |
8 | Кофе может не работать из-за чрезмерно агрессивного энергосбережения, который реализован некоторыми производителями (включая Poco, Samsung и Xiaomi).
9 | В этом случае включите пожалуйста "Альтернативный режим" в настройках.
--------------------------------------------------------------------------------
/fastlane/metadata/android/pt-BR/full_description.txt:
--------------------------------------------------------------------------------
1 | Café permite que você mantenha a tela ligada sem precisar alterar as configurações no aparelho. Pode ser ativado em várias maneiras:
2 | * via botão em ajustes rápidos, lugar que mantém os atalhos de Wi-Fi e Bluetooth. Exige Android 7 ou mais recente.
3 | * via botão dentro do app
4 | * via atalho na tela inicial. Também pode ser criado no app, se seu lançador suporta funcionalidade.
5 |
6 | Café pode ser definido como app de assistência (Configurações do dispositivo => Apps => Apps padrão => App de assistência) que altera seu estado quando a assistência for solicitada.
7 |
8 | Café pode não funcionar devido a função de economia da bateria excessivamente agressiva que é implementada por alguns sistemas (como no Poco, Samsung e Xiaomi).
9 | Nesse caso, por favor, ative "Modo alternativo" em configurações.
--------------------------------------------------------------------------------
/fastlane/metadata/android/it-IT/full_description.txt:
--------------------------------------------------------------------------------
1 | Caffè consente di mantenere il display acceso senza dover modificare le impostazioni del dispositivo. Può essere attivata in diversi modi:
2 | * Nelle impostazioni rapide, con un pulsante, come per il Wi-Fi o il Bluetooth. Richiede Android 7 o versioni successive.
3 | * Un pulsante nell'applicazione stessa
4 | * Un collegamento sulla schermata principale. Può essere creato nell'applicazione, se il launcher lo supporta.
5 |
6 | Caffè può essere impostato come app di assistenza (Impostazioni dispositivo => App => App predefinite => App di assistenza) e cambia lo stato quando viene chiamata l'assistenza.
7 |
8 | Caffè potrebbe non funzionare a causa di un risparmio di batteria troppo aggressivo implementato da alcuni OEM (tra cui Poco, Samsung e Xiaomi).
9 | In questo caso abilita la "Modalità alternativa" nelle impostazioni.
--------------------------------------------------------------------------------
/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 | -dontobfuscate
--------------------------------------------------------------------------------
/fastlane/metadata/android/pt-PT/full_description.txt:
--------------------------------------------------------------------------------
1 | Café permite que você mantenha a tela ligada sem precisar alterar as configurações do dispositivo. Pode ser alternado em vários lugares:
2 | * Um botão nas configurações rápidas, o local que mantém os atalhos por exemplo, Wi-Fi e Bluetooth. Requer Android 7 ou superior.
3 | * Um botão no próprio aplicativo
4 | * Um atalho na sua tela inicial. Ele pode ser criado no app se seu launcher o suporta.
5 |
6 | O café pode ser definido como aplicativo assistivo (Configurações do dispositivo => Aplicativos => Aplicativos padrão => App de assistência) e altera seu estado quando a assistência é chamada.
7 |
8 | O café pode não funcionar devido a um economizador de bateria excessivamente agressivo que é implementado por alguns OEMs (incluindo Poco, Samsung e Xiaomi).
9 | Nesse caso, por favor, ative "Modo alternativo" nas configurações.
--------------------------------------------------------------------------------
/fastlane/metadata/android/uk-UA/full_description.txt:
--------------------------------------------------------------------------------
1 | Coffee дозволяє підтримувати дисплей в активному стані без необхідності змінювати налаштування пристрою. Можна перемикати в різних місцях:
2 | * Плитка в швидких налаштуваннях, місце, де знаходяться перемикачі для, наприклад, Wi-Fi та Bluetooth. Потрібна версія Android 7 або новіша.
3 | * Кнопка у самому додатку
4 | * Ярлик на головному екрані. Можна створити в додатку, якщо ваш лаунчер це підтримує.
5 |
6 | Coffee може бути встановлена як додаток-помічник (Налаштування пристрою => Програми => Програми за замовчуванням => Додаток-помічник) і змінювати свій стан при виклику помічника.
7 |
8 | Кава може не працювати через надто агресивний режим економії заряду батареї, який реалізований деякими виробниками (в тому числі Poco, Samsung і Xiaomi).
9 | У такому випадку, будь ласка, увімкніть "Альтернативний режим" у налаштуваннях.
--------------------------------------------------------------------------------
/app/src/main/java/com/github/muellerma/coffee/activities/CoffeeInvisibleActivity.kt:
--------------------------------------------------------------------------------
1 | package com.github.muellerma.coffee.activities
2 |
3 | import android.app.Activity
4 | import android.os.Bundle
5 | import android.util.Log
6 | import com.github.muellerma.coffee.ForegroundService
7 |
8 | class CoffeeInvisibleActivity : Activity() {
9 | override fun onCreate(savedInstanceState: Bundle?) {
10 | super.onCreate(savedInstanceState)
11 |
12 | if (intent?.action == ACTION_TOGGLE) {
13 | Log.d(TAG, "Received toggle")
14 | ForegroundService.changeState(this, ForegroundService.Companion.STATE.TOGGLE, true)
15 | }
16 |
17 | finishAndRemoveTask()
18 | }
19 |
20 | companion object {
21 | private val TAG = CoffeeInvisibleActivity::class.java.simpleName
22 | const val ACTION_TOGGLE = "toggle"
23 | }
24 | }
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_shortcut_toggle_foreground.xml:
--------------------------------------------------------------------------------
1 |
7 |
12 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_twotone_free_breakfast_24_accent.xml:
--------------------------------------------------------------------------------
1 |
7 |
12 |
15 |
16 |
--------------------------------------------------------------------------------
/crowdin.yml:
--------------------------------------------------------------------------------
1 | files:
2 | - source: /app/src/main/res/values/strings.xml
3 | translation: /app/src/main/res/values-%two_letters_code%/strings.xml
4 | translate_attributes: 0
5 | content_segmentation: 0
6 | languages_mapping:
7 | two_letters_code:
8 | pt-BR: pt-rBR
9 | zh-CN: zh-rCN
10 | he: iw
11 | id: in
12 | yi: ji
13 | - source: /app/src/debug/res/values/strings.xml
14 | translation: /app/src/debug/res/values-%two_letters_code%/strings.xml
15 | translate_attributes: 0
16 | content_segmentation: 0
17 | languages_mapping:
18 | two_letters_code:
19 | pt-BR: pt-rBR
20 | zh-CN: zh-rCN
21 | he: iw
22 | id: in
23 | yi: ji
24 | - source: /fastlane/metadata/android/en-US/*.txt
25 | translation: /fastlane/metadata/android/%locale%/%original_file_name%
26 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ro-RO/full_description.txt:
--------------------------------------------------------------------------------
1 | Cafea vă permite să țineți ecranul treaz fără a fi nevoie să schimbați setările dispozitivului. Poate fi compusă în diferite locuri:
2 | * O dală în setările rapide, locul care ține comutatoarele de ex. Wi-Fi și Bluetooth. Necesită Android 7 sau mai mare.
3 | * Un buton în aplicație
4 | * O comandă rapidă pe ecranul de pornire. Poate fi creat în aplicație, dacă lansatorul îl suportă.
5 |
6 | Coffee poate fi setat ca asistent al aplicației (Setări dispozitiv => Aplicații => Aplicații implicite => Aplicație asistentă) și modificarea stării când se apelează asistență.
7 |
8 | Este posibil ca cafeaua să nu funcționeze din cauza unui economizor excesiv de agresiv de baterii care este implementat de unii constructori de echipamente originale (inclusiv Poco, Samsung și Xiaomi).
9 | În acest caz, vă rugăm să activați "Mod alternativ" în setări.
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_twotone_free_breakfast_120.xml:
--------------------------------------------------------------------------------
1 |
7 |
12 |
15 |
16 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/ca-ES/full_description.txt:
--------------------------------------------------------------------------------
1 | Cafè et permet mantenir sempre la pantalla encesa sense haver de canviar la configuració de sistema. Es pot commutar en diversos llocs:
2 | * Un mosaic a la configuració ràpida, el lloc on hi ha els commutadors, per exemple els de la Wi-Fi i el Bluetooth. Requereix Android 7 o posterior.
3 | * Un botó a la mateixa aplicació
4 | * Una drecera a la pantalla principal. Pot ser creat a l'app si la teva aplicació d'inici ho suporta.
5 |
6 | Cafè pot estar configurat com aplicació de l'assistent digital (Configuració => Aplicacions => Aplicacions predeterminades => Aplicació de l'assistent digital) i commutar el seu estat quan es cridi l'assistent.
7 |
8 | Cafè pot no funcionar a causa del molt agressiu estalvi de bateria que implementen alguns OEMs (incloent-hi Poco, Samsung i Xiaomi).
9 | En aquest cas si us plau habiliteu "Mode altern" a la configuració.
--------------------------------------------------------------------------------
/fastlane/metadata/android/nl-NL/full_description.txt:
--------------------------------------------------------------------------------
1 | Koffie zorgt ervoor dat jouw scherm aan blijft zonder dat de apparaatinstellingen veranderd hoeven te worden. Het kan aangezet worden op verschillende plekken:
2 | * Een tegel in de snelle instellingen, de plek waar de schakelaar wordt vastgehouden voor bijvoorbeeld Wi-Fi en Bluetooth. Dit vereist Android 7 of hoger.
3 | * Een knop in de app zelf
4 | * Een snelkoppeling op jouw home scherm. Het kan in de app gemaakt worden, mits jouw laucher dit ondersteunt.
5 |
6 | Koffie kan worden ingesteld als ondersteunende app (Apparaatinstellingen => Apps => Standaard apps => Ondersteunende app) en veranderd zijn status wanneer dit benodigd is.
7 |
8 | Koffie werkt mogelijk niet vanwege een te agressieve batterijbesparing die is geïmplementeerd door sommige OEM's (waaronder Poco, Samsung en Xiaomi).
9 | Schakel in dat geval "Alternatieve modus" in bij de instellingen.
--------------------------------------------------------------------------------
/fastlane/metadata/android/hu-HU/full_description.txt:
--------------------------------------------------------------------------------
1 | A Coffee lehetővé teszi, hogy a kijelzőt ébren tartsa anélkül, hogy a készülék beállításait megváltoztatná. Több különböző helyen is bekapcsolható:
2 | * Egy csempe a gyorsbeállításokban, a hely, ahol például a Wi-Fi és a Bluetooth kapcsolók vannak. Android 7, vagy újabb verzió szükséges.
3 | * Egy gomb magában az alkalmazásban
4 | * Egy parancsikon a kezdőképernyőjén. Létrehozhatja az alkalmazásban, ha a indítópultja támogatja.
5 |
6 | A Coffee beállítható asszisztens alkalmazásként (Készülékbeállítások => Alkalmazások => Alapértelmezett alkalmazások => Kisegítő alkalmazás), és az kisegítés hívásakor megváltoztatja az állapotát.
7 |
8 | A Coffee nem biztos, hogy működik, mert az egyes OEM-ek (köztük a Poco, a Samsung és a Xiaomi) túlságosan agresszív akkumulátorkímélési technológiát alkalmaznak.
9 | Abban az esetben, kérjük engedélyezze az "Alternatív üzemmód"-ot a beállításokban.
--------------------------------------------------------------------------------
/fastlane/metadata/android/fr-FR/full_description.txt:
--------------------------------------------------------------------------------
1 | Café vous permet de garder l'écran allumé sans avoir à modifier les paramètres de l'appareil. Il peut être activé à différents endroits :
2 | * Une tuile dans les notifications, l'endroit où se trouvent les raccourcis, par exemple le Wi-Fi et le Bluetooth. Nécessite Android 7 ou supérieur.
3 | * Un bouton dans l'application elle-même
4 | * Un raccourci sur votre écran d'accueil. Il peut être créé dans l'application, si votre lanceur d'application le supporte.
5 |
6 | Café peut être défini comme application d'assistance (Paramètres de l'appareil => Applications => Applications par défaut => Application d'assistance) et modifie son état lorsque l'aide est appelée.
7 |
8 | Café peut ne pas fonctionner à cause d'un économiseur de batterie trop agressif qui est mis en œuvre par certains OEMs (y compris Poco, Samsung et Xiaomi).
9 | Dans ce cas, veuillez activer "Mode alternatif" dans les paramètres.
--------------------------------------------------------------------------------
/fastlane/metadata/android/de-DE/full_description.txt:
--------------------------------------------------------------------------------
1 | Kaffee ermöglicht den Bildschirm eingeschaltet zu lassen, ohne dass man die Geräteeinstellungen ändern muss. Die App kann an verschiedenen Stellen umgeschaltet werden:
2 | * Über eine Kachel in den Schnelleinstellungen, dem Ort, wo Schalter für z.B. WLAN und Bluethooth sind. Benötigt Android 7 oder höher.
3 | * Über einen Button in der App selbst
4 | * Über eine Verknüpfung auf dem Startbildschirm. Diese kann in der App erstellt werden, wenn das der Launcher unterstützt.
5 |
6 | Kaffee kann als Assistent-App eingestellt werden (Geräteeinstellungen => Apps => Standard-Apps => Assistent-App) und ändert seinen Status beim Aufruf der Assistenz.
7 |
8 | Kaffee kann aufgrund eines übermäßig aggressiven Energiesparmodus nicht funktionieren, der von einigen Herstellern (einschließlich Poco, Samsung und Xiaomi) implementiert wird.
9 | In diesem Fall aktivieren Sie bitte "Alternativer Modus" in den Einstellungen.
--------------------------------------------------------------------------------
/fastlane/metadata/android/el-GR/full_description.txt:
--------------------------------------------------------------------------------
1 | Ο καφές σας επιτρέπει να διατηρήσετε την οθόνη ενεργή χωρίς να χρειάζεται να αλλάξετε τις ρυθμίσεις της συσκευής. Μπορεί να toggled σε διάφορα σημεία:
2 | * Ένα πλακίδιο στις γρήγορες ρυθμίσεις, το μέρος που συγκρατεί τις εναλλαγές για π.χ. Wi-Fi και Bluetooth. Απαιτεί Android 7 ή νεότερη έκδοση.
3 | * Ένα κουμπί στην ίδια την εφαρμογή
4 | * Μια συντόμευση στην αρχική σας οθόνη. Μπορεί να δημιουργηθεί στην εφαρμογή, αν το υποστηρίξει ο εκκινητής.
5 |
6 | Ο καφές μπορεί να οριστεί ως βοηθητική εφαρμογή (Ρυθμίσεις συσκευής => Εφαρμογές => Προεπιλεγμένες εφαρμογές => Βοηθήστε την εφαρμογή) και αλλάζει την κατάσταση όταν καλείται βοήθεια.
7 |
8 | Ο καφές μπορεί να μην λειτουργεί λόγω μιας υπερβολικά επιθετικής εξοικονόμησης μπαταρίας που εφαρμόζεται από κάποια OEMs (συμπεριλαμβανομένων των Poco, Samsung και Xiaomi).
9 | Σε αυτή την περίπτωση, παρακαλώ ενεργοποιήστε την "Εναλλακτική λειτουργία" στις ρυθμίσεις.
--------------------------------------------------------------------------------
/fastlane/metadata/android/es-ES/full_description.txt:
--------------------------------------------------------------------------------
1 | Café le permite mantener la pantalla encendida sin tener que cambiar la configuración del dispositivo. Puede ser activado en varios lugares:
2 | * Un mosaico en los ajustes rápidos, el lugar donde se encuentran los interruptores para, por ejemplo, Wifi y Bluetooth. Requiere Android 7 o superior.
3 | * Un botón en la misma aplicación
4 | * Un acceso directo en su pantalla de inicio. Puede ser creado desde la aplicación, si su lanzador lo soporta.
5 |
6 | Se puede establecer Café como aplicación de asistencia (Configuración del dispositivo ⇒ Aplicaciones ⇒ Aplicaciones predeterminadas ⇒ Aplicación de asistencia) y así cambiar su estado cuando se llama al asistente.
7 |
8 | Es posible que Café no funcione debido a la optimización de batería demasiado agresiva que algunos fabricantes (incluyendo a Poco, a Samsung y a Xiaomi) han aplicado.
9 | En ese caso, por favor, active "Modo alternativo" en los ajustes.
--------------------------------------------------------------------------------
/app/src/main/java/com/github/muellerma/coffee/Assist.kt:
--------------------------------------------------------------------------------
1 | package com.github.muellerma.coffee
2 |
3 | import android.content.Context
4 | import android.os.Bundle
5 | import android.service.voice.VoiceInteractionService
6 | import android.service.voice.VoiceInteractionSession
7 | import android.service.voice.VoiceInteractionSessionService
8 | import android.util.Log
9 |
10 | private const val TAG = "Assist"
11 |
12 | class InteractionSessionService : VoiceInteractionSessionService() {
13 | override fun onNewSession(bundle: Bundle?) = InteractionSession(this)
14 | }
15 |
16 | class InteractionSession(private val ctx: Context) : VoiceInteractionSession(ctx) {
17 | override fun onHandleAssist(state: AssistState) {
18 | Log.d(TAG, "onHandleAssist")
19 | ForegroundService.changeState(ctx, ForegroundService.Companion.STATE.TOGGLE, true)
20 | finish()
21 | }
22 | }
23 |
24 | class InteractionService : VoiceInteractionService()
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_launcher_foreground.xml:
--------------------------------------------------------------------------------
1 |
7 |
12 |
17 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/values-zh/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 咖啡
7 | 開啓
8 | 已開啓:剩餘 %s
9 | 關閉
10 | 開關
11 |
12 | 此應用程式在快速設定中提供一個圖塊 (放置 Wi-Fi 和 藍牙 等切換鈕的地方),讓您無須變更裝置設定就能讓熒幕保持喚醒狀態。
13 | 按一下圖塊或通知,或手動關閉螢幕時,即可停止咖啡。
14 | 添加開關到主熒幕
15 | 新增設定方塊
16 | 釘選至主熒幕
17 | 固定到主畫面時出錯
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/values-fa/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | قهوه
7 | پایندان قهوه
8 |
9 | این برنامه یک خانه را در ساماندهی آنی (جایگاه پایندان؛ برای نمونه، جای وایفای و بلوتوث) فراهم میکند که توانایی بیدار نگهداشتن نمایشگر را بدون تغییر ساماندهی به شما میدهد.
10 | قهوه با کلیک بر روی خانه یا آگهداد یا هنگامی که نمایشگر به گونه دستی خاموش شود، میایستد.
11 | افزودن پایندان به برگ خانه
12 | به خانه سنجاق شد
13 | کژی در چسباندن به خانه
14 |
15 | برای خاموشی بزنید
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/values-in/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Kopi
7 | Beralih Kopi
8 |
9 | Aplikasi ini menyediakan ubin dalam pengaturan cepat (tempat beralih untuk mis. Wi-Fi dan Bluetooth) yang memungkinkan anda untuk menjaga tampilan tetap aktif tanpa harus mengubah pengaturan perangkat.
10 | Kopi bisa dihentikan dengan mengklik tile atau notifikasi atau saat layar dimatikan secara manual.
11 | Tambahkan toggle ke layar beranda
12 | Disematkan ke tampilan depan
13 | Terjadi kesalahan saat menyematkan ke tampilan depan
14 |
15 | Ketuk untuk mematikan
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
17 |
18 |
22 |
23 |
27 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx2048m
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. More details, visit
12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 | # org.gradle.parallel=true
14 | # AndroidX package structure to make it clearer which packages are bundled with the
15 | # Android operating system, and which are packaged with your app"s APK
16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
17 | android.useAndroidX=true
18 | # Automatically convert third-party libraries to use AndroidX
19 | android.enableJetifier=true
20 | # Kotlin code style for this project: "official" or "obsolete":
21 | kotlin.code.style=official
22 | android.defaults.buildfeatures.buildconfig=true
23 | android.nonTransitiveRClass=false
24 | android.nonFinalResIds=false
--------------------------------------------------------------------------------
/.idea/jarRepositories.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/.github/workflows/deploy-apk.yml:
--------------------------------------------------------------------------------
1 | name: Deploy APK on GitHub
2 |
3 | on:
4 | release:
5 | types:
6 | - created
7 |
8 | permissions:
9 | contents: write
10 |
11 | jobs:
12 | build:
13 | runs-on: ubuntu-latest
14 |
15 | steps:
16 | - uses: actions/checkout@v4
17 |
18 | - name: Setup Java
19 | uses: actions/setup-java@v4
20 | with:
21 | distribution: 'adopt'
22 | java-version: 17
23 |
24 | - name: Validate Gradle Wrapper
25 | uses: gradle/wrapper-validation-action@v3.5.0
26 |
27 | - name: Build APK
28 | run: bash gradlew app:assembleRelease
29 |
30 | - uses: r0adkll/sign-android-release@v1.0.4
31 | name: Sign APK
32 | id: sign_app
33 | with:
34 | releaseDirectory: app/build/outputs/apk/release
35 | signingKeyBase64: ${{ secrets.SIGNING_KEY }}
36 | alias: "key0"
37 | keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
38 | keyPassword: ${{ secrets.KEY_PASSWORD }}
39 | env:
40 | BUILD_TOOLS_VERSION: "34.0.0"
41 |
42 | - uses: svenstaro/upload-release-action@v2
43 | name: Upload APK
44 | with:
45 | file: ${{steps.sign_app.outputs.signedReleaseFile}}
46 | asset_name: coffee.apk
47 | tag: ${{ github.ref }}
48 | repo_token: ${{ secrets.GITHUB_TOKEN }}
49 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/pref_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
13 |
19 |
25 |
26 |
27 |
30 |
31 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/muellerma/coffee/tiles/ToggleTile.kt:
--------------------------------------------------------------------------------
1 | package com.github.muellerma.coffee.tiles
2 |
3 | import android.content.ComponentName
4 | import android.content.Context
5 | import android.os.Build
6 | import android.util.Log
7 | import androidx.annotation.RequiresApi
8 | import com.github.muellerma.coffee.ForegroundService
9 | import com.github.muellerma.coffee.ServiceStatus
10 | import com.github.muellerma.coffee.ServiceStatusObserver
11 |
12 | @RequiresApi(Build.VERSION_CODES.N)
13 | class ToggleTile : AbstractTile() {
14 | override fun onClick() {
15 | Log.d(TAG, "onClick()")
16 | ForegroundService.changeState(this, ForegroundService.Companion.STATE.TOGGLE, false)
17 | super.onClick()
18 | }
19 |
20 | @RequiresApi(Build.VERSION_CODES.N)
21 | companion object {
22 | private val TAG = ToggleTile::class.java.simpleName
23 |
24 | fun requestTileStateUpdate(context: Context) {
25 | Log.d(TAG, "requestTileStateUpdate()")
26 | try {
27 | requestListeningState(context, ComponentName(context, ToggleTile::class.java))
28 | } catch (e: Exception) {
29 | Log.e(TAG, "Error when calling requestListeningState()", e)
30 | }
31 | }
32 | }
33 |
34 | class TileServiceStatusObserver(private val context: Context) : ServiceStatusObserver {
35 | override fun onServiceStatusUpdate(status: ServiceStatus) {
36 | requestTileStateUpdate(context)
37 | }
38 |
39 | }
40 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/github/muellerma/coffee/Prefs.kt:
--------------------------------------------------------------------------------
1 | package com.github.muellerma.coffee
2 |
3 | import android.content.Context
4 | import android.content.SharedPreferences
5 | import androidx.core.content.edit
6 | import androidx.preference.PreferenceManager
7 |
8 | class Prefs(private val context: Context) {
9 | var sharedPrefs: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
10 | private set
11 |
12 | var timeout: Int
13 | get() = sharedPrefs.getString("timeout", "0")?.toInt() ?: 0
14 | set(value) = sharedPrefs.edit { putString("timeout", value.toString()) }
15 |
16 | val nextTimeout: Int
17 | get() {
18 | val allTimeouts = context.resources.getStringArray(R.array.timeout_values)
19 | val currentIndex = allTimeouts.indexOf(timeout.toString())
20 | val nextIndex = (currentIndex + 1).mod(allTimeouts.size)
21 | return allTimeouts[nextIndex].toIntOrNull() ?: 0
22 | }
23 |
24 | val firstTimeout: Int
25 | get() {
26 | val allTimeouts = context.resources.getStringArray(R.array.timeout_values)
27 | return allTimeouts[1].toIntOrNull() ?: 0
28 | }
29 |
30 | var allowDimming: Boolean
31 | get() = sharedPrefs.getBoolean("allow_dimming", false)
32 | set(value) = sharedPrefs.edit { putBoolean("allow_dimming", value) }
33 |
34 | val useAlternateMode: Boolean
35 | get() = sharedPrefs.getBoolean("alternate_mode", false)
36 |
37 | var alternateModeOldTimeout: Int
38 | get() = sharedPrefs.getInt("alternate_mode_old_timeout", -1)
39 | set(value) = sharedPrefs.edit { putInt("alternate_mode_old_timeout", value) }
40 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/github/muellerma/coffee/CoffeeApplication.kt:
--------------------------------------------------------------------------------
1 | package com.github.muellerma.coffee
2 |
3 | import android.app.Application
4 | import android.os.Build
5 | import androidx.preference.PreferenceManager
6 | import com.github.muellerma.coffee.tiles.TimeoutTile
7 | import com.github.muellerma.coffee.tiles.ToggleTile
8 | import com.google.android.material.color.DynamicColors
9 | import kotlin.time.Duration
10 |
11 | class CoffeeApplication : Application() {
12 | var observers = mutableListOf()
13 | var lastStatusUpdate: ServiceStatus = ServiceStatus.Stopped
14 | private set
15 |
16 | override fun onCreate() {
17 | super.onCreate()
18 |
19 | PreferenceManager.setDefaultValues(this, R.xml.pref_main, false)
20 | DynamicColors.applyToActivitiesIfAvailable(this)
21 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
22 | observers.add(ToggleTile.TileServiceStatusObserver(this))
23 | observers.add(TimeoutTile.TileServiceStatusObserver(this))
24 | }
25 | }
26 |
27 | fun notifyObservers(status: ServiceStatus) {
28 | lastStatusUpdate = status
29 | observers.forEach { observer ->
30 | observer.onServiceStatusUpdate(status)
31 | }
32 | }
33 | }
34 |
35 | interface ServiceStatusObserver {
36 | fun onServiceStatusUpdate(status: ServiceStatus)
37 | }
38 |
39 | sealed class ServiceStatus {
40 | class Running(val remaining: Duration?) : ServiceStatus() {
41 | override fun toString() = "${Running::class.java.simpleName}(${remaining?.inWholeSeconds})"
42 | }
43 | object Stopped : ServiceStatus() {
44 | override fun toString(): String = Stopped::class.java.simpleName
45 | }
46 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/github/muellerma/coffee/tiles/TimeoutTile.kt:
--------------------------------------------------------------------------------
1 | package com.github.muellerma.coffee.tiles
2 |
3 | import android.content.ComponentName
4 | import android.content.Context
5 | import android.os.Build
6 | import android.util.Log
7 | import androidx.annotation.RequiresApi
8 | import com.github.muellerma.coffee.ForegroundService
9 | import com.github.muellerma.coffee.Prefs
10 | import com.github.muellerma.coffee.ServiceStatus
11 | import com.github.muellerma.coffee.ServiceStatusObserver
12 | import com.github.muellerma.coffee.coffeeApp
13 |
14 | @RequiresApi(Build.VERSION_CODES.N)
15 | class TimeoutTile : AbstractTile() {
16 | override fun onClick() {
17 | Log.d(TAG, "onClick()")
18 | val prefs = Prefs(applicationContext)
19 | when {
20 | coffeeApp().lastStatusUpdate is ServiceStatus.Stopped -> {
21 | prefs.timeout = prefs.firstTimeout
22 | ForegroundService.changeState(this, ForegroundService.Companion.STATE.START, false)
23 | }
24 | prefs.nextTimeout == 0 -> {
25 | prefs.timeout = 0
26 | ForegroundService.changeState(this, ForegroundService.Companion.STATE.STOP, false)
27 | }
28 | else -> {
29 | prefs.timeout = prefs.nextTimeout
30 | }
31 | }
32 | super.onClick()
33 | }
34 |
35 | @RequiresApi(Build.VERSION_CODES.N)
36 | companion object {
37 | private val TAG = TimeoutTile::class.java.simpleName
38 |
39 | fun requestTileStateUpdate(context: Context) {
40 | Log.d(TAG, "requestTileStateUpdate()")
41 | try {
42 | requestListeningState(context, ComponentName(context, TimeoutTile::class.java))
43 | } catch (e: Exception) {
44 | Log.e(TAG, "Error when calling requestListeningState()", e)
45 | }
46 | }
47 | }
48 |
49 | class TileServiceStatusObserver(private val context: Context) : ServiceStatusObserver {
50 | override fun onServiceStatusUpdate(status: ServiceStatus) {
51 | requestTileStateUpdate(context)
52 | }
53 | }
54 | }
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: "com.android.application"
2 | apply plugin: "kotlin-android"
3 | apply plugin: "com.mikepenz.aboutlibraries.plugin"
4 |
5 | android {
6 | compileSdk 36
7 |
8 | defaultConfig {
9 | applicationId "com.github.muellerma.coffee"
10 | minSdkVersion 21
11 | targetSdkVersion 34
12 | versionCode 45
13 | versionName "2.25"
14 | }
15 | namespace = "com.github.muellerma.coffee"
16 |
17 | buildTypes {
18 | release {
19 | minifyEnabled true
20 | shrinkResources true
21 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
22 | }
23 | debug {
24 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
25 | applicationIdSuffix ".debug"
26 | }
27 | }
28 |
29 | compileOptions {
30 | sourceCompatibility JavaVersion.VERSION_17
31 | targetCompatibility JavaVersion.VERSION_17
32 | encoding "UTF-8"
33 | }
34 | kotlinOptions {
35 | jvmTarget = JavaVersion.VERSION_17.toString()
36 | allWarningsAsErrors = true
37 | }
38 |
39 | buildFeatures {
40 | viewBinding true
41 | }
42 | lint {
43 | abortOnError false
44 | }
45 | androidResources {
46 | generateLocaleConfig true
47 | }
48 | }
49 |
50 | // Make app reproducible by removing timestamp.
51 | // https://github.com/mikepenz/AboutLibraries/issues/784#issuecomment-1205501876
52 | aboutLibraries {
53 | excludeFields = [ "generated" ]
54 | }
55 |
56 | dependencies {
57 | implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
58 | implementation "androidx.core:core-ktx:1.16.0"
59 | implementation "androidx.appcompat:appcompat:1.7.1"
60 | implementation "androidx.fragment:fragment-ktx:1.8.8"
61 | implementation "com.google.android.material:material:1.12.0"
62 | implementation "androidx.preference:preference-ktx:1.2.1"
63 | implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version"
64 | implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version"
65 | implementation "com.mikepenz:aboutlibraries:$about_libraries_version"
66 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Coffee
2 |
3 | [](https://github.com/mueller-ma/Coffee/actions/workflows/build.yml)
4 | [](https://www.codefactor.io/repository/github/mueller-ma/coffee)
5 | [](https://crowdin.com/project/coffee-app)
6 |
7 | This Android app allows you to keep the display awake without having to change the device settings. It can be toggled at various places:
8 | * A tile in the quick settings, the place that holds the toggles for e.g. Wi-Fi and Bluetooth. Requires Android 7 or higher.
9 | * A button in the app itself
10 | * A shortcut on your home screen. It can be created in the app, if your launcher supports it.
11 |
12 | Coffee can be set as assist app (Device settings => `Apps` => `Default apps` => `Assist app`) and changes it's state when assist is called.
13 |
14 | [](https://f-droid.org/de/packages/com.github.muellerma.coffee/)[](https://github.com/mueller-ma/Coffee/releases)
15 |
16 |
17 |
18 | ## Maintenance notice
19 |
20 | From my point of view this app is feature complete. I probably won't add new major features on my own, but I will:
21 | * Keep dependencies up-to-date
22 | * Merge new translations
23 | * Fix bugs
24 | * Review and merge PRs, even for new features
25 |
26 | ## Translations
27 |
28 | App strings and the app store description can be translated via Crowdin: https://crowdin.com/project/coffee-app
29 |
30 | Translations have to be approved before being merged into the app. To become a translator with approval rights or to request a new language, please [poke me on Crowdin](https://crowdin.com/profile/mueller-ma) or open an issue here on GitHub.
31 |
32 |
33 | ## Troubleshooting
34 |
35 | Coffee may not work because of an overly aggressive battery saver that is implemented by some OEMs (including Poco, Samsung and Xiaomi).
36 | In that case please enable "Alternate mode" in the settings.
37 |
38 | ## Credits
39 |
40 | * Feature graphic by https://unsplash.com/@mukulwadhwa
41 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/muellerma/coffee/tiles/AbstractTile.kt:
--------------------------------------------------------------------------------
1 | package com.github.muellerma.coffee.tiles
2 |
3 | import android.os.Build
4 | import android.os.Handler
5 | import android.os.Looper
6 | import android.service.quicksettings.Tile
7 | import android.service.quicksettings.TileService
8 | import android.util.Log
9 | import androidx.annotation.CallSuper
10 | import androidx.annotation.RequiresApi
11 | import com.github.muellerma.coffee.R
12 | import com.github.muellerma.coffee.ServiceStatus
13 | import com.github.muellerma.coffee.coffeeApp
14 | import com.github.muellerma.coffee.toFormattedTime
15 |
16 | @RequiresApi(Build.VERSION_CODES.N)
17 | abstract class AbstractTile : TileService() {
18 | @CallSuper
19 | override fun onClick() {
20 | Log.d(TAG, "onClick()")
21 | Handler(Looper.getMainLooper()).postDelayed({
22 | Log.d(TAG, "Delaying tile state update for 1 second")
23 | setTileState()
24 | }, 500)
25 | }
26 |
27 | override fun onCreate() {
28 | Log.d(TAG, "onCreate()")
29 | super.onCreate()
30 | setTileState()
31 | }
32 |
33 | override fun onStartListening() {
34 | Log.d(TAG, "onStartListening()")
35 | setTileState()
36 | super.onStartListening()
37 | }
38 |
39 | override fun onTileAdded() {
40 | Log.d(TAG, "onTileAdded()")
41 | setTileState()
42 | super.onTileAdded()
43 | }
44 |
45 | private fun setTileState() {
46 | val currentStatus = coffeeApp().lastStatusUpdate
47 | Log.d(TAG, "setTileState(): running = $currentStatus")
48 | val tile = qsTile ?: return
49 |
50 | val (tileState, tileSubtitle) = when (currentStatus) {
51 | is ServiceStatus.Stopped -> Pair(Tile.STATE_INACTIVE, "")
52 | is ServiceStatus.Running -> {
53 | if (currentStatus.remaining == null) {
54 | Pair(Tile.STATE_ACTIVE, "")
55 | } else {
56 | Pair(Tile.STATE_ACTIVE, currentStatus.remaining.toFormattedTime())
57 | }
58 | }
59 | }
60 |
61 | tile.apply {
62 | state = tileState
63 | label = getString(R.string.app_name)
64 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
65 | subtitle = tileSubtitle
66 | }
67 | updateTile()
68 | }
69 | }
70 |
71 | companion object {
72 | private val TAG = AbstractTile::class.java.simpleName
73 | }
74 | }
--------------------------------------------------------------------------------
/app/src/main/res/values-zh-rCN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 咖啡 Coffee
7 | 已打开
8 | 已开启:剩余 %s
9 | 已关闭
10 | 开关咖啡 Coffee
11 |
12 | 此应用在快捷设置(放置着 Wi-Fi 和蓝牙等开关的地方)中提供了一个磁块,使您可以保持屏幕常亮,而无需更改设备设置
13 | 可以通过点击磁块、通知或手动关闭屏幕来停用咖啡 Coffee
14 | 添加开关到主屏幕
15 | 添加磁贴
16 | 已固定到主页
17 | 固定到主屏幕时出错
18 | 需要显示通知权限
19 | 授权
20 |
21 | 咖啡Coffee将保持屏幕常亮
22 | 咖啡将保持屏幕常亮:%s
23 | 点击关闭
24 | 允许屏幕变暗
25 | 不允许屏幕变暗
26 | 下一个时限
27 |
28 | 设置
29 | 定时关闭咖啡
30 | 不限时
31 | 5 分钟
32 | 15 分钟
33 | 30 分钟
34 | 1 小时
35 | 2 小时
36 | 允许屏幕变暗
37 | 屏幕将会根据系统的屏幕超时时间来变暗
38 | 备用模式
39 | 仅在咖啡无法保持屏幕常亮时才需要启用备用模式;在此模式下,其他功能可能无法正常工作。备用模式通过暂时增加屏幕超时时间来保持屏幕常亮。
40 | 备用模式需要此权限
41 | Coffee 咖啡无法设置之前的超时时间
42 |
43 | 关于咖啡 Coffee
44 | 未发现浏览器
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/res/values-ja/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | コーヒー
7 | 有効
8 | 有効: 残り %s
9 | 無効
10 | コーヒーを切り替え
11 |
12 | このアプリはクイック設定(Wi-FiやBluetoothなどの切り替えボタンがある場所)に端末の設定を変えることなくディスプレイの自動消灯を一時的に無効化できるタイルを追加します。
13 | コーヒーはタイルをもう一度押す、通知をタップする、手動で画面をオフにするなどで止められます。
14 | ホーム画面にショートカットを追加
15 | タイルを追加
16 | ホーム画面に追加しました
17 | ホーム画面に追加できませんでした
18 | 通知を表示する権限が必要です
19 | 許可
20 |
21 | ディスプレイが消灯しないようにしています
22 | %s の間ディスプレイが消灯しないようにしています
23 | タップしてオフにする
24 | 調光を有効にする
25 | 調光を無効にする
26 | タイマーを切り替え
27 |
28 | 設定
29 | コーヒーを自動的にオフにするまでの時間
30 | 無効
31 | 5分
32 | 15分
33 | 30分
34 | 1時間
35 | 2時間
36 | 画面の調光を許可
37 | 画面がシステムの自動消灯の時間に基づいて暗くなることを許可します。
38 | 代替モード
39 | コーヒーが機能していない場合のみ代替モードをオンにしてください。代替モードでは一部の機能が使えなくなります。代替モードは一時的にシステムの自動消灯設定を変更することにより画面の消灯を防止します。
40 | 代替モードにはこの権限が必要です
41 | コーヒーは自動消灯の設定を元に戻すことができませんでした
42 |
43 | コーヒーについて
44 | ブラウザが見つかりませんでした
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/res/values-ko/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Coffee
7 | 활성화됨
8 | 활성화됨: %s 남음
9 | 비활성화됨
10 | Coffee 전환하기
11 |
12 | 이 앱은 빠른 설정창(전환 버튼들이 있는곳, 예를 들어 Wi-Fi나 블루투스 버튼들)에 기기의 설정을 바꾸지 않고 화면이 계속 켜져있게 해주는 타일을 제공합니다.
13 | 타일이나 알림을 클릭하거나, 화면을 수동으로 꺼서 Coffee를 비횔성화할 수 있습니다.
14 | 홈스크린에 전환 버튼 추가하기
15 | 타일 추가하기
16 | 홈에 고정함
17 | 홈에 고정하는데 실패함
18 | 알림을 표시할 권한이 필요합니다
19 | 허용
20 |
21 | Coffee가 디스플레이가 켜져 있게 유지합니다
22 | Coffee가 디스플레이가 켜져 있게 유지합니다: %s
23 | 탭하여 끄기
24 | 디밍 활성화
25 | 디밍 비활성화
26 | 다음 타임아웃
27 |
28 | 설정
29 | 다음 시간 후 Coffee 중단하기
30 | 타임아웃 없음
31 | 5분
32 | 15분
33 | 30분
34 | 1시간
35 | 2시간
36 | 스크린 디밍 허용하기
37 | 시스템의 스크린 타임아웃 설정에 따라 스크린이 디밍됩니다
38 | 대체 모드
39 | Coffee를 활성화했음에도 화면이 꺼질 때만 대체 모드를 활성화해주세요. 다른 기능들이 작동하지 않을 수 있습니다. 대체 모드는 일시적으로 시스템 스크린 타임아웃을 증가시킵니다.
40 | 대체 모드는 이 권한이 필요합니다
41 | Coffee가 이전 타임아웃을 설정하지 못했습니다
42 |
43 | Coffee 정보
44 | 브라우저를 찾을 수 없음
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/res/values-nb/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Kaffe
7 | Skrudd på
8 | Slått på: %s gjenstår
9 | Skrudd av
10 | Veksle Kaffe
11 |
12 | Denne appen gir en flis i hurtiginnstillingene (stedet som holder vektene for eksempel Wi-Fi og Bluetooth) som lar deg holde skjermen våken uten å endre enhetens innstillinger.
13 | Kaffe kan stanses ved å klikke på flisen, varslene eller når skjermen er slått av manuelt.
14 | Legg til veksling til startskjerm
15 | Festet til hjemme
16 | Feil ved knytting til hjemme
17 | Tillatelse til å vise varslinger er påkrevd
18 | Tillat
19 |
20 | Kaffe vil holde skjermen på
21 | Kaffe vil beholde skjermen på: %s
22 | Trykk for å skru av
23 | Aktiver dimming
24 | Deaktiver dimming
25 | Neste tidsavbrudd
26 |
27 | Innstillinger
28 | Stopp Kaffe etter
29 | Ingen tidsavbrudd
30 | 5 minutter
31 | 15 minutter
32 | 30 minutter
33 | 1 time
34 | 2 timer
35 | Tillat skjermdimming
36 | Skjermen vil bli dimmet basert på systemets tidsavbrudd
37 | Alternativ modus
38 | Alternativ modus krever denne tillatelsen
39 | Kaffe kunne ikke angi forrige tidsavbrudd
40 |
41 | Om Kaffe
42 | Ingen nettleser funnet
43 |
44 |
--------------------------------------------------------------------------------
/app/src/main/res/values-cs/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Káva
7 | Zapnuto
8 | Zapnuto: %s zbývá
9 | Vypnuto
10 | Přepnout kávu
11 |
12 | Tato aplikace poskytuje dlaždici v rychlém nastavení (místo, kde je umístěno přepínače např. Wi-Fi a Bluetooth), které umožňují udržet obrazovku vzhůru bez nutnosti měnit nastavení zařízení.
13 | Kávu lze zastavit kliknutím na dlaždici nebo oznámením nebo při manuálním vypnutí obrazovky.
14 | Přidat přepínání na domovskou obrazovku
15 | Připnuto na domov
16 | Chyba připnutí domů
17 | Je vyžadováno oprávnění k zobrazení oznámení
18 | Udělit
19 |
20 | Káva bude zapnuta
21 | Káva bude udržovat displej na: %s
22 | Klepnutím vypnete
23 | Povolit stmívání
24 | Zakázat stmívání
25 | Příští časový limit
26 |
27 | Nastavení
28 | Zastavit kávu po
29 | Žádný časový limit
30 | 5 minut
31 | 15 minut
32 | 30 minut
33 | 1 hodina
34 | 2 hodiny
35 | Povolit stmívání obrazovky
36 | Obrazovka bude ztlumena podle časového limitu systémové obrazovky
37 | Alternativní režim
38 | Alternativní režim vyžaduje toto oprávnění
39 | Káva nemohla nastavit předchozí časový limit
40 |
41 | O kávě
42 | Nebyl nalezen žádný prohlížeč
43 |
44 |
--------------------------------------------------------------------------------
/app/src/main/res/values-da/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Kaffe
7 | Slået til
8 | Slået til: %s tilbage
9 | Slukket fra
10 | Slå Kaffe Til/Fra
11 |
12 | Denne app giver en flise i hurtig-indstillingerne (det sted, der holder skiftene til f.eks. Wi-Fi og Bluetooth), der giver dig mulighed for at holde skærmen vågen uden at skulle ændre enhedsindstillingerne.
13 | Kaffe kan stoppes ved at klikke på flisen eller notifikationen, eller når skærmen er slukket manuelt.
14 | Tilføj skift til startskærm
15 | Fastgjort til hjem
16 | Fejl ved fastgørelse til hjemmet
17 | Tilladelse til at vise notifikationer er påkrævet
18 | Tildel
19 |
20 | Kaffe vil holde skærmen tændt
21 | Kaffe vil holde skærmen på: %s
22 | Tryk for at slukke
23 | Aktivér dæmpning
24 | Deaktivér dæmpning
25 | Næste timeout
26 |
27 | Indstillinger
28 | Stop kaffe efter
29 | Ingen timeout
30 | 5 minutter
31 | 15 minutter
32 | 30 minutter
33 | 1 time
34 | 2 timer
35 | Tillad skærmdæmpning
36 | Skærmen vil blive dæmpet baseret på systemskærmens timeout
37 | Alternativ tilstand
38 | Alternativ tilstand kræver denne tilladelse
39 | Kaffe kunne ikke indstille forrige timeout
40 |
41 | Om Kaffe
42 | Ingen browser fundet
43 |
44 |
--------------------------------------------------------------------------------
/app/src/main/res/values-sv/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Kaffe
7 | Aktiverad
8 | Aktiverad på: %s kvar
9 | Stäng av
10 | Växla Kaffe
11 |
12 | Denna applikation ger en bricka i snabbinställningarna (platsen som håller växlarna för t.ex. Wi-Fi och Bluetooth) som låter dig hålla skärmen vaken utan att behöva ändra enhetsinställningarna.
13 | Kaffe kan stoppas genom att klicka på brickan, notifikationen eller när skärmen stängs av manuellt.
14 | Lägg till växeln på startskärmen
15 | Fäst på hem
16 | Fel vid fästning på hem
17 | Behörighet att visa aviseringar krävs
18 | Bevilja
19 |
20 | Kaffe kommer att hålla displayen på
21 | Kaffe kommer att hålla displayen på: %s
22 | Tryck för att slå av
23 | Aktivera ljusreglering
24 | Inaktivera ljusreglering
25 | Nästa timeout
26 |
27 | Inställningar
28 | Stoppa kaffe efter
29 | Ingen timeout
30 | 5 minuter
31 | 15 minuter
32 | 30 minuter
33 | 1 timme
34 | 2 timmar
35 | Tillåt ljusreglering på skärmen
36 | Skärmen kommer att sänkas baserat på systemskärmens tidsgräns
37 | Alternativt läge
38 | Alternativt läge kräver detta tillstånd
39 | Kaffe kunde inte ställa in föregående timeout
40 |
41 | Om kaffe
42 | Ingen webbläsare hittades
43 |
44 |
--------------------------------------------------------------------------------
/app/src/main/res/values-fi/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Kahvi
7 | Käytössä
8 | Hyväksyt: %s jäljellä
9 | Pois päältä
10 | Vaihda Kahvia
11 |
12 | Tämä sovellus tarjoaa ruudun pika-asetuksissa (paikka, jossa on asetukset esim. Wi-Fi ja Bluetooth), joiden avulla voit pitää näytön hereillä tarvitsematta muuttaa laitteen asetuksia.
13 | Kahvi voidaan pysäyttää klikkaamalla laattaa tai ilmoitusta tai kun näyttö on pois päältä manuaalisesti.
14 | Lisää asetus aloitusnäyttöön
15 | Kiinnitetty kotiin
16 | Virhe kiinnitettäessä kotiin
17 | Oikeus näyttää ilmoitukset vaaditaan
18 | Myönnä
19 |
20 | Kahvi pitää näytön päällä
21 | Kahvi pitää näytön päällä: %s
22 | Poista käytöstä napauttamalla
23 | Ota himmennys käyttöön
24 | Poista himmennys käytöstä
25 | Seuraava aikakatkaisu
26 |
27 | Asetukset
28 | Pysäytä kahvi jälkeen
29 | Ei aikakatkaisu
30 | 5 minuuttia
31 | 15 minuuttia
32 | 30 minuuttia
33 | 1 tunti
34 | 2 tuntia
35 | Salli näytön himmennys
36 | Näytön himmennys perustuu järjestelmän näytön aikakatkaisuun
37 | Vaihtoehtoinen tila
38 | Vaihtoehtoinen tila vaatii tämän käyttöoikeuden
39 | Kahvi ei onnistunut asettamaan edellistä aikakatkaisua
40 |
41 | Tietoja Kahvista
42 | Selainta ei löytynyt
43 |
44 |
--------------------------------------------------------------------------------
/app/src/main/res/values-ro/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Cafea
7 | Activat
8 | Pornit pe: %s rămase
9 | Oprit
10 | Comută cafeaua
11 |
12 | Această aplicație oferă o iconiță în setările rapide (locul care conține comutatoarele de ex. Wi-Fi și Bluetooth) care vă permit să mențineți ecranul treaz fără să modificați setările dispozitivului.
13 | Cafea poate fi oprită făcând clic pe dală sau pe notificare sau atunci când ecranul este oprit manual.
14 | Adăugați comutator pe ecranul de pornire
15 | Fixat acasă
16 | Eroare la fixarea la domiciliu
17 | Permisiunea de a afișa notificări este necesară
18 | Acordă
19 |
20 | Cafea va păstra afișajul pe
21 | Cafea va păstra afișajul pe: %s
22 | Atingeți pentru a opri
23 | Activare estompare
24 | Dezactivează estomparea
25 | Următoarea pauză
26 |
27 | Setări
28 | Oprește cafeaua după
29 | Fără timeout
30 | 5 minute
31 | 15 minute
32 | 30 de minute
33 | 1 oră
34 | 2 ore
35 | Permite reducerea luminozității ecranului
36 | Ecranul va fi estompat în funcție de timpul de expirare a ecranului de sistem
37 | Mod alternativ
38 | Modul alternativ necesită această permisiune
39 | Cafea nu a putut seta perioada de pauză anterioară
40 |
41 | Despre cafea
42 | Nici un browser găsit
43 |
44 |
--------------------------------------------------------------------------------
/app/src/main/res/values-pt-rBR/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Coffee
7 | Ativado em
8 | Ativado em: %s restante
9 | Desativado
10 | Lig./Deslig. Café
11 |
12 | Este aplicativo fornece um botão nas configurações rápidas (onde ficam os botões para o Wi-Fi e o Bluetooth, por exemplo) que permite que você deixe a tela ligada sem precisar alterar as configurações do dispositivo.
13 | O café pode ser desligado via botão em ajustes rápidos, via notificação ou quando a tela for apagada manualmente.
14 | Adicionar botão à tela inicial
15 | Fixado na tela inicial
16 | Erro ao fixar na tela inicial
17 | Exigida a permissão para mostrar notificações
18 | Conceder
19 |
20 | Café manterá a tela ligada
21 | Café manterá a exibição: %s
22 | Toque para desativar
23 | Ativar redução do brilho
24 | Desativar redução do brilho
25 | Próximo tempo limite
26 |
27 | Configurações
28 | Desligar café após
29 | Sem tempo limite
30 | 5 minutos
31 | 15 minutos
32 | 30 minutos
33 | 1 hora
34 | 2 horas
35 | Permitir redução do brilho
36 | O brilho da tela será reduzido baseado no tempo limite definido pelo sistema
37 | Modo alternativo
38 | Modo alternativo precisa desta permissão
39 | Café não podia definir o tempo limite anterior
40 |
41 | Sobre Café
42 | Nenhum navegador encontrado
43 |
44 |
--------------------------------------------------------------------------------
/app/src/main/res/values-ar/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Coffee
7 | تم تشغيل
8 | تم تشغيل: %s متبقي
9 | تم إيقاف التشغيل
10 | تبديل Coffee
11 |
12 | يوفر هذا التطبيق بلاط في الإعدادات السريعة (المكان الذي يحتوي على مفاتيح التبديل مثلاً: شبكة Wi-Fi وBluetooth) التي تسمح لك بإبقاء الشاشة مستيقظة دون الحاجة إلى تغيير إعدادات الجهاز.
13 | يمكن إيقاف Coffee بالنقر على البلاط أو الإشعار أو عند إيقاف تشغيل الشاشة يدوياً.
14 | إضافة تبديل إلى الشاشة الرئيسية
15 | إضافة بلاطة
16 | مثبت على الشاشة الرئيسية
17 | خطأ في تثبيت الشاشة الرئيسية
18 | إذن إظهار الإشعارات مطلوب
19 | منح
20 |
21 | Coffee ستيقي الشاشة قيد التشغيل
22 | سوف يبقي Coffee قيد التشغيل على: %s
23 | انقر لإيقاف التشغيل
24 | تمكين التعتيم
25 | تعطيل التعتيم
26 | المهلة التالية
27 |
28 | الإعدادات
29 | إيقاف Coffee بعد
30 | لا مهلة
31 | 5 دقائق
32 | 15 دقيقة
33 | 30 دقيقة
34 | ساعة واحدة
35 | ساعتين
36 | السماح بتقويم الشاشة
37 | سيتم إزالة الشاشة على أساس مهلة شاشة النظام
38 | الوضع البديل
39 | قم بتشغيل الوضع البديل فقط إذا لم يبقي Coffee الشاشة قيد التشغيل؛ قد لا تعمل الميزات الأخرى. سيؤدي الوضع البديل إلى زيادة مهلة شاشة النظام مؤقتاً.
40 | الوضع البديل يتطلب هذا الإذن
41 | تعذر تعيين المهلة السابقة لـCoffee
42 |
43 | حول Coffee
44 | لم يتم العثور على متصفح
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/res/values-el/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Καφές
7 | Ενεργοποιήθηκε
8 | Ενεργοποίησε στις: %s απομένουν
9 | Απενεργοποίηση
10 | Εναλλαγή Καφέ
11 |
12 | Αυτή η εφαρμογή παρέχει ένα πλακίδιο στις γρήγορες ρυθμίσεις (το μέρος που κρατά τις εναλλαγές για π.χ. Wi-Fi και Bluetooth) που σας επιτρέπει να διατηρήσετε την οθόνη ενεργή χωρίς να χρειάζεται να αλλάξετε τις ρυθμίσεις της συσκευής.
13 | Ο καφές μπορεί να σταματήσει κάνοντας κλικ στο πλακίδιο ή στην ειδοποίηση ή όταν η οθόνη είναι απενεργοποιημένη χειροκίνητα.
14 | Προσθήκη εναλλαγής στην αρχική οθόνη
15 | Καρφιτσωμένο στο σπίτι
16 | Σφάλμα καρφιτσώματος στην αρχική
17 | Απαιτείται άδεια για εμφάνιση ειδοποιήσεων
18 | Παραχώρηση
19 |
20 | Ο καφές θα κρατήσει την οθόνη ενεργή
21 | Ο καφές θα κρατήσει την οθόνη στο: %s
22 | Πατήστε για απενεργοποίηση
23 | Ενεργοποίηση dimming
24 | Απενεργοποίηση dimming
25 | Επόμενο χρονικό όριο
26 |
27 | Ρυθμίσεις
28 | Σταματήστε τον καφέ μετά
29 | Χωρίς χρονικό όριο
30 | 5 λεπτά
31 | 15 λεπτά
32 | 30 λεπτά
33 | 1 ώρα
34 | 2 ώρες
35 | Να επιτρέπεται η μείωση φωτεινότητας οθόνης
36 | Η οθόνη θα γίνει αμυδρή με βάση το χρονικό όριο της οθόνης συστήματος
37 | Εναλλακτική λειτουργία
38 | Η λειτουργία εναλλακτικής λειτουργίας απαιτεί αυτό το δικαίωμα
39 | Ο καφές δεν μπόρεσε να ορίσει το προηγούμενο χρονικό όριο
40 |
41 | Σχετικά Με Καφές
42 | Δεν βρέθηκε πρόγραμμα περιήγησης
43 |
44 |
--------------------------------------------------------------------------------
/app/src/main/res/values-es/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Café
7 | Activado
8 | Activado: %s restantes
9 | Desactivado
10 | Activar o desactivar Café
11 |
12 | Esta aplicación ofrece un mosaico en los ajustes rápidos (el lugar donde se encuentran los interruptores para, por ejemplo, Wifi y Bluetooth) que le permite mantener la pantalla encendida sin tener que cambiar la configuración del dispositivo
13 | Puede detener Café pulsando el mosaico, la notificación o apagando la pantalla manualmente.
14 | Agregar interruptor a la pantalla de inicio
15 | Añadir mosaico
16 | Anclado a la pantalla de inicio
17 | Error al anclar a la pantalla de inicio
18 | Se requiere permiso para mostrar notificaciones
19 | Permitir
20 |
21 | Café mantendrá encendida la pantalla
22 | Café mantendrá encendida la pantalla: %s
23 | Pulse para desactivar
24 | Activar atenuación
25 | Desactivar atenuación
26 | Siguiente tiempo límite
27 |
28 | Ajustes
29 | Detener Café después de
30 | Sin tiempo límite
31 | 5 minutos
32 | 15 minutos
33 | 30 minutos
34 | 1 hora
35 | 2 horas
36 | Permitir la atenuación de la pantalla
37 | La pantalla se atenuará en función del tiempo de espera de reposo del sistema
38 | Modo alternativo
39 | El modo alternativo requiere este permiso
40 | Café no pudo establecer el tiempo de espera anterior
41 |
42 | Acerca de Café
43 | No se encontró ningún navegador
44 |
45 |
--------------------------------------------------------------------------------
/app/src/main/res/values-it/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Caffè
7 | Attivato
8 | Attivato: %s rimanenti
9 | Disattivato
10 | Attiva/Disattiva Caffè
11 |
12 | L’app può essere aggiunta nelle impostazioni rapide (ad esempio, il posto dove si trovano le icone dell\'Wi-Fi, Bluetooth, Modalità aerea) e consentirà di avere lo schermo sempre attivo senza dover modificare le impostazioni del dispositivo.
13 | Caffè può essere interrotto tramite l’icona nelle impostazioni rapide, dalle notifiche o quando lo schermo viene spento manualmente con il pulsante.
14 | Aggiungi pulsante sulla schermata principale
15 | Pulsante aggiunto nella schermata principale
16 | Errore durante l\'aggiunta alla schermata principale
17 | È necessaria l\'autorizzazione a ricevere le notifiche
18 | Consenti
19 |
20 | Caffè manterrà lo schermo attivo
21 | Il caffè manterrà il display su: %s
22 | Tocca per spegnere
23 | Abilita oscuramento
24 | Disabilita oscuramento
25 | Prossimo pausa
26 |
27 | Impostazioni
28 | Ferma Caffè dopo
29 | Nessuna pausa
30 | 5 minuti
31 | 15 minuti
32 | 30 minuti
33 | 1 ora
34 | 2 ore
35 | Consenti oscuramento dello schermo
36 | Lo schermo verrà oscurato in base alle impostazioni del sistema
37 | Modalità alternativa
38 | La \"Modalità alternativa\" richiede questa autorizzazione
39 | Caffè non è riuscito a impostare il timeout precedente
40 |
41 | Riguardo Caffè
42 | Nessun browser trovato
43 |
44 |
--------------------------------------------------------------------------------
/app/src/main/res/values-tr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Coffee
7 | Açık
8 | Açık: %s kaldı
9 | Kapalı
10 | Coffee\'yi Aç/Kapat
11 |
12 | Bu uygulama hızlı ayarlarda (Örneğin, Wi-Fi ve Bluetooth için geçişleri tutan yer) cihaz ayarlarını değiştirmek zorunda kalmadan ekranı uyanık tutmanıza izin veren bir kutucuk sağlar.
13 | Coffee, kutucuğa veya bildirime tıklanarak veya ekran el ile olarak kapatıldığında durdurulabilir.
14 | Ana ekrana geçiş ekle
15 | Başlık ekle
16 | Ana ekrana sabitlenmiş
17 | Ana ekrana sabitleme hatası
18 | Bildirimleri göstermek için izin gerekli
19 | İzin ver
20 |
21 | Coffee ekranı açık tutacaktır
22 | Coffee ekranı açık tutacaktır: %s
23 | Kapatmak için dokunun
24 | Karartmayı etkinleştir
25 | Karartmayı devre dışı bırak
26 | Sonraki zaman aşımı
27 |
28 | Ayarlar
29 | Sonra Coffee\'yi durdur
30 | Zaman aşımı yok
31 | 5 dakika
32 | 15 dakika
33 | 30 dakika
34 | 1 saat
35 | 2 saat
36 | Ekran karartmaya izin ver
37 | Ekran, sistem ekran zaman aşımına bağlı olarak karartılacaktır
38 | Alternatif mod
39 | Alternatif modu yalnızca Coffee ekranı açık tutmuyorsa açın; diğer özellikler çalışmayabilir. Alternatif mod, sistem ekranı zaman aşımını geçici olarak artıracaktır.
40 | Alternatif mod bu izni gerektirir
41 | Coffee önceki zaman aşımını ayarlayamadı
42 |
43 | Coffee Hakkında
44 | Tarayıcı bulunamadı
45 |
46 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem https://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 | @rem SPDX-License-Identifier: Apache-2.0
17 | @rem
18 |
19 | @if "%DEBUG%"=="" @echo off
20 | @rem ##########################################################################
21 | @rem
22 | @rem Gradle startup script for Windows
23 | @rem
24 | @rem ##########################################################################
25 |
26 | @rem Set local scope for the variables with windows NT shell
27 | if "%OS%"=="Windows_NT" setlocal
28 |
29 | set DIRNAME=%~dp0
30 | if "%DIRNAME%"=="" set DIRNAME=.
31 | @rem This is normally unused
32 | set APP_BASE_NAME=%~n0
33 | set APP_HOME=%DIRNAME%
34 |
35 | @rem Resolve any "." and ".." in APP_HOME to make it shorter.
36 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
37 |
38 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
39 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
40 |
41 | @rem Find java.exe
42 | if defined JAVA_HOME goto findJavaFromJavaHome
43 |
44 | set JAVA_EXE=java.exe
45 | %JAVA_EXE% -version >NUL 2>&1
46 | if %ERRORLEVEL% equ 0 goto execute
47 |
48 | echo. 1>&2
49 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
50 | echo. 1>&2
51 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2
52 | echo location of your Java installation. 1>&2
53 |
54 | goto fail
55 |
56 | :findJavaFromJavaHome
57 | set JAVA_HOME=%JAVA_HOME:"=%
58 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
59 |
60 | if exist "%JAVA_EXE%" goto execute
61 |
62 | echo. 1>&2
63 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
64 | echo. 1>&2
65 | echo Please set the JAVA_HOME variable in your environment to match the 1>&2
66 | echo location of your Java installation. 1>&2
67 |
68 | goto fail
69 |
70 | :execute
71 | @rem Setup the command line
72 |
73 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
74 |
75 |
76 | @rem Execute Gradle
77 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
78 |
79 | :end
80 | @rem End local scope for the variables with windows NT shell
81 | if %ERRORLEVEL% equ 0 goto mainEnd
82 |
83 | :fail
84 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
85 | rem the _cmd.exe /c_ return code!
86 | set EXIT_CODE=%ERRORLEVEL%
87 | if %EXIT_CODE% equ 0 set EXIT_CODE=1
88 | if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
89 | exit /b %EXIT_CODE%
90 |
91 | :mainEnd
92 | if "%OS%"=="Windows_NT" endlocal
93 |
94 | :omega
95 |
--------------------------------------------------------------------------------
/app/src/main/res/values-uk/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Coffee
7 | Увімкнути
8 | Увімкнено: %s залишилося
9 | Вимкнути
10 | Вкл/Викл Coffee
11 |
12 | Ця програма надає плитку у швидких налаштуваннях (місце, де знаходяться перемикачі, наприклад, для Wi-Fi та Bluetooth), яка дозволяє тримати дисплей увімкненим без необхідності змінювати налаштування пристрою.
13 | Coffee можна зупинити, натиснувши на плитку або повідомлення, або при ручному вимиканні екрану.
14 | Додати на головний екран
15 | Додати плитку
16 | Додано на головний екран
17 | Помилка додавання на головний екран
18 | Потрібен дозвіл на показ повідомлень
19 | Дозволити
20 |
21 | Coffee не дасть дисплею згаснути
22 | Coffee триматиме дисплей увімкненим: %s
23 | Натисніть, щоб вимкнути
24 | Увімкнути затемнення
25 | Вимкнути затемнення
26 | Наступний таймаут
27 |
28 | Налаштування
29 | Зупинка Coffee після
30 | Без таймауту
31 | 5 хвилин
32 | 15 хвилин
33 | 30 хвилин
34 | 1 година
35 | 2 години
36 | Дозволити затемнення екрана
37 | Екран буде затемнено відповідно до таймауту екрану системи
38 | Альтернативний режим
39 | Увімкніть альтернативний режим, тільки якщо програма \"Кава\" не утримує екран увімкненим; інші функції можуть не працювати. Альтернативний режим тимчасово збільшує час очікування екрана системи.
40 | Альтернативний режим вимагає цього дозволу
41 | Coffee не може встановити попередній таймаут
42 |
43 | Про Coffee
44 | Браузер не знайдено
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/res/values-nl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Koffie
7 | Ingeschakeld
8 | Ingeschakeld: %s resterend
9 | Uitgeschakeld
10 | Zet Koffie aan/uit
11 |
12 | Deze app biedt een tegel voor de snelle instellingen (het menu met schakelaars voor o.a. wifi en bluetooth) om het scherm ingeschakeld te houden zonder daarvoor in de instellingenapp te hoeven duiken.
13 | Koffie kan worden gestopt door te drukken op de tegel of melding, of door het scherm handmatig uit te schakelen.
14 | Voeg schuifje toe aan home scherm
15 | Tegel toevoegen
16 | Vastgemaakt aan home
17 | Error bij vastmaken aan home
18 | Toestemming om meldingen weer te geven is vereist
19 | Toestaan
20 |
21 | Koffie zal het scherm aan houden
22 | Koffie zal het scherm %s aan houden
23 | Druk om uit te schakelen
24 | Dimmen inschakelen
25 | Dimmen uitschakelen
26 | Volgende time-out
27 |
28 | Instellingen
29 | Koffie stoppen na
30 | Geen time-out
31 | 5 minuten
32 | 15 minuten
33 | 30 minuten
34 | 1 uur
35 | 2 uur
36 | Dimmen toestaan
37 | Scherm zal gedimd worden op basis van de systeemvergrendeltijd.
38 | Alternatieve modus
39 | Schakel alternatieve modus alleen in als Koffie het scherm niet aan laat staan; andere functies werken mogelijk niet. De alternatieve modus zal de vergrendeltijd tijdelijk verhogen.
40 | Alternatieve modus vereist deze toestemming
41 | Koffie kon de vorige time-out niet instellen
42 |
43 | Over Koffie
44 | Geen browser gevonden
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/res/values-ru/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Кофе
7 | Включено
8 | Включено: %s осталось
9 | Выключено
10 | Переключить Coffee
11 |
12 | Это приложение предоставляет плитку в быстрых настройках (место, где находятся переключатели, например, Wi-Fi и Bluetooth), которая позволяет вам сохранять дисплей включённым без необходимости изменять настройки устройства.
13 | Кофе можно остановить, нажав на плитку или уведомление, или когда экран выключен вручную.
14 | Добавить переключатель на домашний экран
15 | Добавить плитку
16 | Прикреплено
17 | Ошибка прикрепления
18 | Требуется разрешение на отображение уведомлений
19 | Предоставить
20 |
21 | Кофе будет держать дисплей включенным
22 | Кофе сохранит дисплей включенным: %s
23 | Коснитесь, чтобы выключить
24 | Включить затемнение
25 | Отключить затемнение
26 | Следующий таймаут
27 |
28 | Настройки
29 | Остановить Кофе через
30 | Без таймаута
31 | 5 минут
32 | 15 минут
33 | 30 минут
34 | 1 час
35 | 2 часа
36 | Разрешить затемнение экрана
37 | Экран будет затемнен в зависимости от системного таймаута экрана
38 | Альтернативный режим
39 | Включайте альтернативный режим, только если Coffee не держит экран включенным; другие функции могут не работать. Альтернативный режим временно увеличит системный таймаут экрана.
40 | Для работы в альтернативном режиме требуется следующее разрешение
41 | Coffee не удалось установить предыдущий таймаут
42 |
43 | О Coffee
44 | Браузер не найден
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/res/values-pt/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Coffee
7 | Ligado
8 | Ligado: Faltam %s
9 | Desligado
10 | Ativar/Desativar Coffee
11 |
12 | Esta aplicação fornece um bloco nas definições rápidas (o menu com os blocos de, por exemplo, Wi-Fi e Bluetooth) que permite que manter o ecrã ativo sem ter que alterar as configurações do dispositivo.
13 | O Coffee pode ser interrompido ao tocar no bloco ou na notificação, ou a desligar o ecrã manualmente.
14 | Adicionar botão à tela inicial
15 | Adicionar bloco
16 | Fixado no ecrã inicial
17 | Erro ao fixar no ecrã inicial
18 | A permissão para mostrar notificações é obrigatória
19 | Permitir
20 |
21 | Coffe irá manter o ecrã ligado
22 | Coffee manterá a exibição: %s
23 | Toque para desligar
24 | Ativar redução do brilho
25 | Desativar redução do brilho
26 | Próximo tempo limite
27 |
28 | Definições
29 | Desligar Coffee após
30 | Sem tempo limite
31 | 5 minutos
32 | 10 minutos
33 | 30 minutos
34 | 1 hora
35 | 2 horas
36 | Permitir redução do brilho
37 | O brilho do ecrã será reduzido baseado no tempo limite definido pelo sistema
38 | Modo alternativo
39 | Ligue o modo alternativo só se o Coffee não mantém o ecrã ligado; outras funcionalidades podem deixar de funcionar. O modo alternativo irá aumentar o tempo limite do sistema temporariamente.
40 | Modo alternativo requer esta permissão
41 | Coffee não conseguiu definir o tempo limite anterior
42 |
43 | Sobre Coffee
44 | Nenhum navegador encontrado
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/res/values-pl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Kawa
7 | Włączony
8 | Włączono: pozostało %s
9 | Wyłączony
10 | Przełącz Kawę
11 |
12 | Ta aplikacja dodaje kafelek w panelu szybkich ustawień (w miejscu, gdzie znajdują się przełączniki dla Wi-Fi, Bluetooth itp.), który umożliwia ciągłe pobudzanie ekranu bez zmieniania ustawień urządzenia.
13 | Kawę można zatrzymać naciskając na kafelek lub powiadomienie oraz ręcznie wyłączając ekran.
14 | Dodaj przełącznik do ekranu głównego
15 | Dodaj kafelek
16 | Przypięto do ekranu głównego
17 | Błąd przypinania
18 | Wymagane jest pozwolenie na wyświetlanie powiadomień
19 | Przyznanie
20 |
21 | Kawa zapobiegnie wygaszeniu ekranu
22 | Kawa utrzyma wyświetlacz na: %s
23 | Naciśnij, aby wyłączyć
24 | Włącz przyciemnianie
25 | Wyłącz przyciemnianie
26 | Następny limit czasu
27 |
28 | Ustawienia
29 | Zatrzymaj działanie aplikacji po
30 | Brak limitu czasu
31 | 5 minutach
32 | 15 minutach
33 | 30 minutach
34 | 1 godzinie
35 | 2 godzinach
36 | Zezwól na przyciemnianie ekranu
37 | Ekran zostanie przyciemniony na podstawie czasu wygaszania ekranu ustawionego w systemie
38 | Tryb alternatywny
39 | Włącz tryb alternatywny tylko wtedy, gdy Coffee nie zachowuje ekranu włączonego; inne funkcje mogą nie działać. Alternatywny tryb tymczasowo zwiększy czas wygaszaania ekranu w systemie.
40 | Tryb alternatywny wymaga tego uprawnienia
41 | Kawa nie mogła ustawić poprzedniego limitu czasu
42 |
43 | O kawie
44 | Nie znaleziono przeglądarki
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/res/values-ca/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Cafè
7 | Activat
8 | Activat: %s restant
9 | Desactivat
10 | Commutar cafè
11 |
12 | Aquest aplicatiu proporciona un mosaic de configuració ràpida (el lloc on hi ha els commutadors, per exemple els de la Wi-Fi i el Bluetooth) que et permet mantenir la pantalla encesa sense haver de canviar la configuració de sistema.
13 | Cafè pot ser aturat clicant al mosaic o a la notificació o quan la pantalla s\'apaga manualment.
14 | Afegeix commutador a la pantalla d\'inici
15 | Afegeix un mosaic
16 | Fixat a la pàgina principal
17 | Error fixant a la pàgina principal
18 | Es requereix permís per a notificacions
19 | Permetre
20 |
21 | Cafè mantindrà la pantalla encesa
22 | Cafè mantindrà la pantalla encesa: %s
23 | Toqueu per desactivar
24 | Activar enfosquiment
25 | Desactivar enfosquiment
26 | Següent temps d\'espera
27 |
28 | Configuració
29 | Apaga cafè després de
30 | Sense temps d\'espera
31 | 5 minuts
32 | 15 minuts
33 | 30 minuts
34 | 1 hora
35 | 2 hores
36 | Permet enfosquiment de pantalla
37 | La pantalla s\'enfosquirà d\'acord amb la configuració de sistema
38 | Alternar mode
39 | Activa el mode altern només si Cafè no manté la pantalla encesa; altres funcionalitats poden no funcionar. El mode altern incrementarà temporalment el temps d\'espera de la pantalla.
40 | El mode altern requereix aquest permís
41 | Cafè no ha pogut restablir el temps d\'espera anterior
42 |
43 | Sobre Cafè
44 | No s\'ha trobat cap navegador
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/res/values-fr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Café
7 | Activé
8 | Activé le : %s restants
9 | Éteint
10 | Activer Café
11 |
12 | Cette application fournit une tuile dans les widgets (l\'endroit où se trouvent les notifications, p. ex. Wi-Fi et Bluetooth) qui vous permet de garder l\'affichage allumé sans avoir à modifier les paramètres de l\'appareil.
13 | Café peut être arrêté en cliquant sur le widget ou sur la notification ou encore lorsque l\'écran est éteint manuellement.
14 | Ajouter un raccourci à l\'écran d\'accueil
15 | Ajouter une vignette
16 | Ajouté à l\'écran d\'accueil
17 | Erreur lors de l\'ajout à l\'écran d\'accueil
18 | Permission d\'afficher les notifications est requise
19 | Autoriser
20 |
21 | Café gardera l\'affichage allumé
22 | Le café gardera l\'affichage sur : %s
23 | Appuyez pour désactiver
24 | Modifier la luminosité
25 | Désactiver la gradation de la luminosité
26 | Délai suivant
27 |
28 | Paramètres
29 | Arrêter Café après
30 | Aucun délai
31 | 5 minutes
32 | 15 minutes
33 | 30 minutes
34 | 1 heure
35 | 2 heures
36 | Autoriser l\'assombrissement de l\'écran
37 | L\'écran sera assombri en fonction du délai d\'attente de l\'écran du système
38 | Mode alternatif
39 | N\'activez le mode alternatif que si Café ne garde pas l\'écran allumé ; les autres fonctions peuvent ne pas fonctionner. Le mode alternatif augmente temporairement le délai de fermeture de l\'écran.
40 | Le mode alternatif requiert cette autorisation
41 | Café n\'a pas pu définir le délai d\'attente précédent
42 |
43 | À propos de Café
44 | Aucun navigateur trouvé
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/res/values-hu/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Coffee
7 | Bekapcsolva
8 | Bekapcsolva: %s van hátra
9 | Kikapcsolva
10 | Coffee be/kikapcsolása
11 |
12 | Ez az alkalmazás egy olyan csempét biztosít a gyorsbeállításokban (a hely, ahol például a Wi-Fi és a Bluetooth kapcsolók vannak), amely lehetővé teszi, hogy a kijelzőt ébren tartsa anélkül, hogy a készülék beállításait meg kellene változtatnia.
13 | A Coffee leállítható a csempére vagy az értesítésre kattintva, illetve a képernyő kézi kikapcsolásával.
14 | Kapcsoló hozzáadása a kezdőképernyőhöz
15 | Csempe hozzáadása
16 | Kitűzve a kezdőképernyőre
17 | Hiba a kezdőképernyőre kitűzésekor
18 | Az értesítések megjelenítéséhez való engedély szükséges
19 | Engedélyez
20 |
21 | A Coffee bekapcsolva tartja a kijelzőt
22 | A Coffee ennyi ideig tartja bekapcsolva a kijelzőt: %s
23 | Érintse meg a kikapcsoláshoz
24 | Halványítás engedélyezése
25 | Halványítás letiltása
26 | Következő időkorlát
27 |
28 | Beállítások
29 | Coffe kikapcsolása ennyi idő után
30 | Nincs időkorlát
31 | 5 perc
32 | 15 perc
33 | 30 perc
34 | 1 óra
35 | 2 óra
36 | Képernyő halványításának engedélyezése
37 | A képernyő el lesz halványítva a rendszer képernyő időkorlátja alapján
38 | Alternatív mód
39 | Csak akkor kapcsolja be a alternatív üzemmódot, ha a Coffee nem tartja bekapcsolva a képernyőt; más funkciók esetleg nem működnek. Az alternatív üzemmód átmenetileg megnöveli a rendszer képernyőjének időkorlátját.
40 | Az alternatív mód megköveteli ezt az engedélyt
41 | A Coffee nem tudta beállítani az előző időkorlátot
42 |
43 | A Coffee-ról
44 | Nem található böngésző
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/res/values-de/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Kaffee
7 | Eingeschaltet
8 | Eingeschaltet: %s verbleibend
9 | Ausgeschaltet
10 | Kaffee umschalten
11 |
12 | Diese App stellt in den Schnelleinstellungen (der Ort, an dem die Schalter für z.B. WLAN und Bluetooth sind) eine Kachel zur Verfügung, welche es erlaubt, den Bildschirm eingeschaltet zu lassen, ohne die Geräteeinstellungen zu ändern
13 | Kaffee kann durch Tippen auf die Kachel oder die Benachrichtigung oder durch das manuelle Ausschalten des Bildschirms gestoppt werden
14 | Zum Startbildschirm hinzufügen
15 | Kachel hinzufügen
16 | An Startbildschirm angepinnt
17 | Fehler beim Anpinnen an Startbildschirm
18 | Berechtigung zum Anzeigen von Benachrichtigungen ist erforderlich
19 | Erlauben
20 |
21 | Kaffee lässt den Bildschirm eingeschaltet
22 | Kaffee lässt den Bildschirm eingeschaltet: %s
23 | Tippen zum Ausschalten
24 | Dimmen aktivieren
25 | Dimmen deaktivieren
26 | Nächster Timeout
27 |
28 | Einstellungen
29 | Stoppe Kaffee nach
30 | Kein Timeout
31 | 5 Minuten
32 | 15 Minuten
33 | 30 Minuten
34 | 1 Stunde
35 | 2 Stunden
36 | Dimmen des Bildschirms erlauben
37 | Bildschirm wird gedimmt, basierend auf der Bildschirmsperre des Systems
38 | Alternativer Modus
39 | Aktivieren Sie den alternativen Modus nur, wenn Kaffee den Bildschirm nicht eingeschaltet lässt. Andere Features werden nicht funktionieren. Der alternative Modus erhöht vorübergehend die Bildschirmsperre des Systems.
40 | Alternativer Modus benötigt diese Berechtigung
41 | Kaffee konnte den vorherigen Timeout nicht setzen
42 |
43 | Über Kaffee
44 | Kein Browser gefunden
45 |
46 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/muellerma/coffee/Utils.kt:
--------------------------------------------------------------------------------
1 | package com.github.muellerma.coffee
2 |
3 | import android.app.Activity
4 | import android.app.PendingIntent
5 | import android.app.Service
6 | import android.content.ActivityNotFoundException
7 | import android.content.ContentResolver
8 | import android.content.Context
9 | import android.content.Intent
10 | import android.content.pm.PackageManager
11 | import android.net.Uri
12 | import android.os.Build
13 | import android.os.PowerManager
14 | import android.provider.Settings
15 | import android.util.Log
16 | import android.widget.Toast
17 | import androidx.annotation.CheckResult
18 | import androidx.annotation.StringRes
19 | import androidx.core.app.ActivityCompat
20 | import kotlin.time.Duration
21 |
22 | private const val TAG = "Utils"
23 |
24 | fun Context.showToast(@StringRes msg: Int) {
25 | Toast
26 | .makeText(this, msg, Toast.LENGTH_SHORT)
27 | .show()
28 | }
29 |
30 | fun ContentResolver.getSystemScreenTimeout(): Int {
31 | return Settings.System.getInt(this, Settings.System.SCREEN_OFF_TIMEOUT)
32 | }
33 |
34 | @CheckResult
35 | fun ContentResolver.setSystemScreenTimeout(timeout: Int): Boolean {
36 | return try {
37 | Settings.System.putInt(this, Settings.System.SCREEN_OFF_TIMEOUT, timeout)
38 | true
39 | } catch (e: SecurityException) {
40 | Log.e(TAG, "Error writing screen timeout", e)
41 | false
42 | }
43 | }
44 |
45 | fun Context.openSystemScreenTimeoutPermissions() {
46 | if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
47 | return
48 | }
49 |
50 | showToast(R.string.alternate_mode_permissions)
51 | startActivity(
52 | Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS)
53 | .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK)
54 | .setData(Uri.parse("package:$packageName"))
55 | )
56 | }
57 |
58 | fun Context.hasPermissions(vararg permissions: String): Boolean {
59 | return permissions
60 | .map { permission -> ActivityCompat.checkSelfPermission(this, permission) }
61 | .all { result -> result == PackageManager.PERMISSION_GRANTED }
62 | }
63 |
64 | fun String.openInBrowser(context: Context) {
65 | val intent = Intent(Intent.ACTION_VIEW, Uri.parse(this))
66 | try {
67 | context.startActivity(intent)
68 | } catch (e: ActivityNotFoundException) {
69 | Log.d(TAG, "Unable to open url in browser: $intent")
70 | context.showToast(R.string.error_no_browser_found)
71 | }
72 | }
73 |
74 | val PendingIntent_Immutable = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
75 | PendingIntent.FLAG_IMMUTABLE
76 | } else {
77 | 0
78 | }
79 |
80 | val PendingIntent_Mutable = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
81 | PendingIntent.FLAG_MUTABLE
82 | } else {
83 | 0
84 | }
85 |
86 | fun PowerManager.WakeLock?.safeRelease() {
87 | try {
88 | this?.release()
89 | } catch (e: RuntimeException) {
90 | Log.d(TAG, "Couldn't release wakelock $this", e)
91 | }
92 | }
93 |
94 | fun Duration.toFormattedTime(): String {
95 | val wholeSeconds = inWholeSeconds
96 | val hours = wholeSeconds / 3600
97 | val minutes = wholeSeconds % 3600 / 60
98 | val seconds = wholeSeconds % 60
99 |
100 | return if (hours == 0L) {
101 | String.format("%02d:%02d", minutes, seconds)
102 | } else {
103 | String.format("%02d:%02d:%02d", hours, minutes, seconds)
104 | }
105 | }
106 |
107 | fun Activity.coffeeApp() = application as CoffeeApplication
108 | fun Service.coffeeApp() = application as CoffeeApplication
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 | Coffee
9 | Turned on
10 | Turned on: %s remaining
11 | Turned off
12 | Toggle Coffee
13 |
14 |
15 | This app provides a tile in the quick settings (the place that holds the toggles for e.g. Wi-Fi and Bluetooth) that allows you to keep the display awake without having to change the device settings.
16 | Coffee can be stopped by clicking on the tile or the notification or when the screen is turned off manually.
17 | Add toggle to home screen
18 | Add tile
19 | Pinned to home
20 | Error pinning to home
21 | Permission to show notifications is required
22 | Grant
23 |
24 |
25 | Coffee will keep the display on
26 | Coffee will keep the display on: %s
27 | Tap to turn off
28 | Enable dimming
29 | Disable dimming
30 | Next timeout
31 |
32 |
33 | Settings
34 | Stop Coffee after
35 | No timeout
36 | 5 minutes
37 | 15 minutes
38 | 30 minutes
39 | 1 hour
40 | 2 hours
41 |
42 | Allow screen dimming
43 | Screen will be dimmed based on the system screen timeout
44 |
45 | Alternate mode
46 | Turn on alternate mode only if Coffee doesn\'t keep the screen on; other features may not work. The alternate mode will temporarily increase the system screen timeout.
47 | Alternate mode requires this permission
48 | Coffee couldn\'t set the previous timeout
49 |
50 |
51 | About Coffee
52 | No browser found
53 | GitHub
54 | F-Droid
55 | Crowdin
56 |
57 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
25 |
26 |
36 |
37 |
46 |
47 |
56 |
57 |
65 |
66 |
76 |
77 |
87 |
88 |
98 |
99 |
--------------------------------------------------------------------------------