Merge branch 'master' into master

This commit is contained in:
Indrajeet Meena 2020-05-25 21:47:41 +05:30 committed by GitHub
commit ca0dab5e5f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
66 changed files with 267 additions and 187 deletions

View File

@ -1,6 +1,13 @@
Changelog Changelog
========== ==========
Version 5.1.1 *(2020-05-25)*
----------------------------
* Updated the app icon on lower Android versions
* Added a Bright Display shortcut
* Removed the Camera permission on Android 7+
Version 5.1.0 *(2020-03-23)* Version 5.1.0 *(2020-03-23)*
---------------------------- ----------------------------

View File

@ -16,8 +16,8 @@ android {
applicationId "com.simplemobiletools.flashlight" applicationId "com.simplemobiletools.flashlight"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 29 targetSdkVersion 29
versionCode 39 versionCode 41
versionName "5.1.0" versionName "5.1.1"
setProperty("archivesBaseName", "flashlight") setProperty("archivesBaseName", "flashlight")
} }
@ -56,7 +56,7 @@ android {
} }
dependencies { dependencies {
implementation 'com.simplemobiletools:commons:5.23.8' implementation 'com.simplemobiletools:commons:5.28.23'
implementation 'com.squareup:otto:1.3.8' implementation 'org.greenrobot:eventbus:3.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta4' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta4'
} }

View File

@ -1,6 +1,6 @@
# Otto # EventBus
-keepattributes *Annotation* -keepattributes *Annotation*
-keepclassmembers class ** { -keepclassmembers class ** {
@com.squareup.otto.Subscribe public *; @org.greenrobot.eventbus.Subscribe <methods>;
@com.squareup.otto.Produce public *;
} }
-keep enum org.greenrobot.eventbus.ThreadMode { *; }

View File

@ -1,20 +1,22 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="com.simplemobiletools.flashlight" package="com.simplemobiletools.flashlight"
android:installLocation="auto"> android:installLocation="auto">
<uses-permission android:name="android.permission.CAMERA"/> <uses-permission
<uses-permission android:name="android.permission.FLASHLIGHT"/> android:name="android.permission.CAMERA"
android:maxSdkVersion="23" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission <uses-permission
android:name="android.permission.USE_FINGERPRINT" android:name="android.permission.USE_FINGERPRINT"
tools:node="remove"/> tools:node="remove" />
<uses-feature <uses-feature
android:name="android.hardware.camera.flash" android:name="android.hardware.camera.flash"
android:required="true"/> android:required="true" />
<application <application
android:name=".App" android:name=".App"
@ -29,62 +31,63 @@
android:name=".activities.SplashActivity" android:name=".activities.SplashActivity"
android:theme="@style/SplashTheme"> android:theme="@style/SplashTheme">
<intent-filter> <intent-filter>
<action android:name="android.service.quicksettings.action.QS_TILE_PREFERENCES"/> <action android:name="android.service.quicksettings.action.QS_TILE_PREFERENCES" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity <activity
android:name=".activities.MainActivity" android:name=".activities.MainActivity"
android:theme="@style/AppTheme"/> android:theme="@style/AppTheme" />
<activity <activity
android:name=".activities.WidgetConfigureActivity" android:name=".activities.WidgetConfigureActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/MyWidgetConfigTheme"> android:theme="@style/MyWidgetConfigTheme">
<intent-filter> <intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/> <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity <activity
android:name=".activities.BrightDisplayActivity" android:name=".activities.BrightDisplayActivity"
android:theme="@style/FullScreenTheme"/> android:label="@string/bright_display"
android:theme="@style/FullScreenTheme" />
<activity <activity
android:name=".activities.SettingsActivity" android:name=".activities.SettingsActivity"
android:label="@string/settings" android:label="@string/settings"
android:parentActivityName=".activities.MainActivity"/> android:parentActivityName=".activities.MainActivity" />
<activity <activity
android:name="com.simplemobiletools.commons.activities.AboutActivity" android:name="com.simplemobiletools.commons.activities.AboutActivity"
android:label="@string/about" android:label="@string/about"
android:parentActivityName=".activities.MainActivity"/> android:parentActivityName=".activities.MainActivity" />
<activity <activity
android:name="com.simplemobiletools.commons.activities.LicenseActivity" android:name="com.simplemobiletools.commons.activities.LicenseActivity"
android:label="@string/third_party_licences" android:label="@string/third_party_licences"
android:parentActivityName="com.simplemobiletools.commons.activities.AboutActivity"/> android:parentActivityName="com.simplemobiletools.commons.activities.AboutActivity" />
<activity <activity
android:name="com.simplemobiletools.commons.activities.CustomizationActivity" android:name="com.simplemobiletools.commons.activities.CustomizationActivity"
android:label="@string/customize_colors" android:label="@string/customize_colors"
android:parentActivityName=".activities.SettingsActivity"/> android:parentActivityName=".activities.SettingsActivity" />
<activity <activity
android:name="com.simplemobiletools.commons.activities.FAQActivity" android:name="com.simplemobiletools.commons.activities.FAQActivity"
android:label="@string/frequently_asked_questions" android:label="@string/frequently_asked_questions"
android:parentActivityName="com.simplemobiletools.commons.activities.AboutActivity"/> android:parentActivityName="com.simplemobiletools.commons.activities.AboutActivity" />
<receiver <receiver
android:name=".helpers.MyWidgetProvider" android:name=".helpers.MyWidgetProvider"
android:icon="@drawable/ic_flashlight"> android:icon="@drawable/ic_flashlight">
<intent-filter> <intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter> </intent-filter>
<meta-data <meta-data
android:name="android.appwidget.provider" android:name="android.appwidget.provider"
android:resource="@xml/widget_info"/> android:resource="@xml/widget_info" />
</receiver> </receiver>
<service <service
@ -93,7 +96,7 @@
android:label="@string/app_launcher_name" android:label="@string/app_launcher_name"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"> android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
<intent-filter> <intent-filter>
<action android:name="android.service.quicksettings.action.QS_TILE"/> <action android:name="android.service.quicksettings.action.QS_TILE" />
</intent-filter> </intent-filter>
</service> </service>
@ -105,8 +108,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -118,8 +121,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -131,8 +134,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -144,8 +147,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -157,8 +160,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -170,8 +173,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -183,8 +186,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -196,8 +199,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -209,8 +212,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -222,8 +225,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -235,8 +238,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -248,8 +251,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -261,8 +264,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -274,8 +277,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -286,8 +289,8 @@
android:roundIcon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher"
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -299,8 +302,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -312,8 +315,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -325,8 +328,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
@ -338,8 +341,8 @@
android:targetActivity=".activities.SplashActivity"> android:targetActivity=".activities.SplashActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity-alias> </activity-alias>
</application> </application>

View File

@ -1,27 +1,31 @@
package com.simplemobiletools.flashlight.activities package com.simplemobiletools.flashlight.activities
import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.content.pm.ActivityInfo import android.content.pm.ActivityInfo
import android.content.pm.ShortcutInfo
import android.graphics.drawable.Icon
import android.graphics.drawable.LayerDrawable
import android.os.Bundle import android.os.Bundle
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
import android.view.WindowManager import android.view.WindowManager
import android.widget.ImageView import android.widget.ImageView
import android.widget.SeekBar
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.LICENSE_OTTO import com.simplemobiletools.commons.helpers.LICENSE_EVENT_BUS
import com.simplemobiletools.commons.helpers.PERMISSION_CAMERA import com.simplemobiletools.commons.helpers.PERMISSION_CAMERA
import com.simplemobiletools.commons.helpers.isNougatMR1Plus
import com.simplemobiletools.commons.helpers.isNougatPlus import com.simplemobiletools.commons.helpers.isNougatPlus
import com.simplemobiletools.commons.models.FAQItem import com.simplemobiletools.commons.models.FAQItem
import com.simplemobiletools.flashlight.BuildConfig import com.simplemobiletools.flashlight.BuildConfig
import com.simplemobiletools.flashlight.R import com.simplemobiletools.flashlight.R
import com.simplemobiletools.flashlight.extensions.config import com.simplemobiletools.flashlight.extensions.config
import com.simplemobiletools.flashlight.helpers.BusProvider
import com.simplemobiletools.flashlight.helpers.MyCameraImpl import com.simplemobiletools.flashlight.helpers.MyCameraImpl
import com.simplemobiletools.flashlight.models.Events import com.simplemobiletools.flashlight.models.Events
import com.squareup.otto.Bus
import com.squareup.otto.Subscribe
import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.activity_main.*
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import java.util.*
class MainActivity : SimpleActivity() { class MainActivity : SimpleActivity() {
private val MAX_STROBO_DELAY = 2000L private val MAX_STROBO_DELAY = 2000L
@ -29,7 +33,7 @@ class MainActivity : SimpleActivity() {
private val FLASHLIGHT_STATE = "flashlight_state" private val FLASHLIGHT_STATE = "flashlight_state"
private val STROBOSCOPE_STATE = "stroboscope_state" private val STROBOSCOPE_STATE = "stroboscope_state"
private var mBus: Bus? = null private var mBus: EventBus? = null
private var mCameraImpl: MyCameraImpl? = null private var mCameraImpl: MyCameraImpl? = null
private var mIsFlashlightOn = false private var mIsFlashlightOn = false
private var reTurnFlashlightOn = true private var reTurnFlashlightOn = true
@ -39,7 +43,7 @@ class MainActivity : SimpleActivity() {
setContentView(R.layout.activity_main) setContentView(R.layout.activity_main)
appLaunched(BuildConfig.APPLICATION_ID) appLaunched(BuildConfig.APPLICATION_ID)
mBus = BusProvider.instance mBus = EventBus.getDefault()
changeIconColor(getContrastColor(), stroboscope_btn) changeIconColor(getContrastColor(), stroboscope_btn)
bright_display_btn.setOnClickListener { bright_display_btn.setOnClickListener {
@ -87,11 +91,14 @@ class MainActivity : SimpleActivity() {
requestedOrientation = if (config.forcePortraitMode) ActivityInfo.SCREEN_ORIENTATION_PORTRAIT else ActivityInfo.SCREEN_ORIENTATION_SENSOR requestedOrientation = if (config.forcePortraitMode) ActivityInfo.SCREEN_ORIENTATION_PORTRAIT else ActivityInfo.SCREEN_ORIENTATION_SENSOR
invalidateOptionsMenu() invalidateOptionsMenu()
if(config.turnFlashlightOn && reTurnFlashlightOn){ if(config.turnFlashlightOn && reTurnFlashlightOn) {
mCameraImpl!!.enableFlashlight() mCameraImpl!!.enableFlashlight()
} }
reTurnFlashlightOn = true reTurnFlashlightOn = true
checkShortcuts()
} }
override fun onStart() { override fun onStart() {
@ -157,10 +164,10 @@ class MainActivity : SimpleActivity() {
val licenses = LICENSE_OTTO val licenses = LICENSE_OTTO
val faqItems = arrayListOf( val faqItems = arrayListOf(
FAQItem(R.string.faq_1_title_commons, R.string.faq_1_text_commons), FAQItem(R.string.faq_1_title_commons, R.string.faq_1_text_commons),
FAQItem(R.string.faq_4_title_commons, R.string.faq_4_text_commons), FAQItem(R.string.faq_4_title_commons, R.string.faq_4_text_commons),
FAQItem(R.string.faq_2_title_commons, R.string.faq_2_text_commons), FAQItem(R.string.faq_2_title_commons, R.string.faq_2_text_commons),
FAQItem(R.string.faq_6_title_commons, R.string.faq_6_text_commons) FAQItem(R.string.faq_6_title_commons, R.string.faq_6_text_commons)
) )
startAboutActivity(R.string.app_name, licenses, BuildConfig.VERSION_NAME, faqItems, true) startAboutActivity(R.string.app_name, licenses, BuildConfig.VERSION_NAME, faqItems, true)
@ -176,22 +183,12 @@ class MainActivity : SimpleActivity() {
private fun setupStroboscope() { private fun setupStroboscope() {
stroboscope_bar.max = (MAX_STROBO_DELAY - MIN_STROBO_DELAY).toInt() stroboscope_bar.max = (MAX_STROBO_DELAY - MIN_STROBO_DELAY).toInt()
stroboscope_bar.progress = config.stroboscopeProgress stroboscope_bar.progress = config.stroboscopeProgress
stroboscope_bar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { stroboscope_bar.onSeekBarChangeListener { progress ->
override fun onProgressChanged(seekBar: SeekBar, progress: Int, b: Boolean) { val frequency = stroboscope_bar.max - progress + MIN_STROBO_DELAY
val frequency = stroboscope_bar.max - progress + MIN_STROBO_DELAY mCameraImpl?.stroboFrequency = frequency
mCameraImpl?.stroboFrequency = frequency config.stroboscopeFrequency = frequency
config.stroboscopeFrequency = frequency config.stroboscopeProgress = progress
config.stroboscopeProgress = progress }
}
override fun onStartTrackingTouch(seekBar: SeekBar) {
}
override fun onStopTrackingTouch(seekBar: SeekBar) {
}
})
} }
private fun toggleStroboscope(isSOS: Boolean) { private fun toggleStroboscope(isSOS: Boolean) {
@ -273,6 +270,37 @@ class MainActivity : SimpleActivity() {
imageView!!.background.mutate().applyColorFilter(color) imageView!!.background.mutate().applyColorFilter(color)
} }
@SuppressLint("NewApi")
private fun checkShortcuts() {
val appIconColor = config.appIconColor
if (isNougatMR1Plus() && config.lastHandledShortcutColor != appIconColor) {
val createNewContact = getBrightDisplayShortcut(appIconColor)
try {
shortcutManager.dynamicShortcuts = Arrays.asList(createNewContact)
config.lastHandledShortcutColor = appIconColor
} catch (ignored: Exception) {
}
}
}
@SuppressLint("NewApi")
private fun getBrightDisplayShortcut(appIconColor: Int): ShortcutInfo {
val brightDisplay = getString(R.string.bright_display)
val drawable = resources.getDrawable(R.drawable.shortcut_bright_display)
(drawable as LayerDrawable).findDrawableByLayerId(R.id.shortcut_bright_display_background).applyColorFilter(appIconColor)
val bmp = drawable.convertToBitmap()
val intent = Intent(this, BrightDisplayActivity::class.java)
intent.action = Intent.ACTION_VIEW
return ShortcutInfo.Builder(this, "bright_display")
.setShortLabel(brightDisplay)
.setLongLabel(brightDisplay)
.setIcon(Icon.createWithBitmap(bmp))
.setIntent(intent)
.build()
}
@Subscribe @Subscribe
fun cameraUnavailable(event: Events.CameraUnavailable) { fun cameraUnavailable(event: Events.CameraUnavailable) {
toast(R.string.camera_error) toast(R.string.camera_error)

View File

@ -1,7 +0,0 @@
package com.simplemobiletools.flashlight.helpers
import com.squareup.otto.Bus
object BusProvider {
val instance = Bus()
}

View File

@ -6,7 +6,7 @@ import android.hardware.camera2.CameraManager
import android.os.Build import android.os.Build
import android.os.Handler import android.os.Handler
import com.simplemobiletools.flashlight.models.Events import com.simplemobiletools.flashlight.models.Events
import com.squareup.otto.Bus import org.greenrobot.eventbus.EventBus
internal class MarshmallowCamera constructor(val context: Context) { internal class MarshmallowCamera constructor(val context: Context) {
@ -21,12 +21,12 @@ internal class MarshmallowCamera constructor(val context: Context) {
} }
@TargetApi(Build.VERSION_CODES.M) @TargetApi(Build.VERSION_CODES.M)
fun toggleMarshmallowFlashlight(bus: Bus, enable: Boolean) { fun toggleMarshmallowFlashlight(enable: Boolean) {
try { try {
manager.setTorchMode(cameraId!!, enable) manager.setTorchMode(cameraId!!, enable)
} catch (e: Exception) { } catch (e: Exception) {
val mainRunnable = Runnable { val mainRunnable = Runnable {
bus.post(Events.CameraUnavailable()) EventBus.getDefault().post(Events.CameraUnavailable())
} }
Handler(context.mainLooper).post(mainRunnable) Handler(context.mainLooper).post(mainRunnable)
} }

View File

@ -11,7 +11,7 @@ import com.simplemobiletools.flashlight.R
import com.simplemobiletools.flashlight.extensions.config import com.simplemobiletools.flashlight.extensions.config
import com.simplemobiletools.flashlight.extensions.updateWidgets import com.simplemobiletools.flashlight.extensions.updateWidgets
import com.simplemobiletools.flashlight.models.Events import com.simplemobiletools.flashlight.models.Events
import com.squareup.otto.Bus import org.greenrobot.eventbus.EventBus
import java.io.IOException import java.io.IOException
class MyCameraImpl(val context: Context) { class MyCameraImpl(val context: Context) {
@ -23,16 +23,18 @@ class MyCameraImpl(val context: Context) {
private var camera: Camera? = null private var camera: Camera? = null
private var params: Camera.Parameters? = null private var params: Camera.Parameters? = null
private var bus: Bus? = null
private var isMarshmallow = false private var isMarshmallow = false
private var shouldEnableFlashlight = false private var shouldEnableFlashlight = false
private var isStroboSOS = false // are we sending SOS, or casual stroboscope? private var isStroboSOS = false // are we sending SOS, or casual stroboscope?
private var marshmallowCamera: MarshmallowCamera? = null private var marshmallowCamera: MarshmallowCamera? = null
@Volatile @Volatile
private var shouldStroboscopeStop = false private var shouldStroboscopeStop = false
@Volatile @Volatile
private var isStroboscopeRunning = false private var isStroboscopeRunning = false
@Volatile @Volatile
private var isSOSRunning = false private var isSOSRunning = false
@ -41,12 +43,6 @@ class MyCameraImpl(val context: Context) {
init { init {
isMarshmallow = isMarshmallowPlus() isMarshmallow = isMarshmallowPlus()
if (bus == null) {
bus = BusProvider.instance
bus!!.register(this)
}
handleCameraSetup() handleCameraSetup()
stroboFrequency = context.config.stroboscopeFrequency stroboFrequency = context.config.stroboscopeFrequency
} }
@ -82,7 +78,7 @@ class MyCameraImpl(val context: Context) {
fun stopStroboscope() { fun stopStroboscope() {
shouldStroboscopeStop = true shouldStroboscopeStop = true
bus!!.post(Events.StopStroboscope()) EventBus.getDefault().post(Events.StopStroboscope())
} }
fun toggleSOS(): Boolean { fun toggleSOS(): Boolean {
@ -115,7 +111,7 @@ class MyCameraImpl(val context: Context) {
fun stopSOS() { fun stopSOS() {
shouldStroboscopeStop = true shouldStroboscopeStop = true
bus!!.post(Events.StopSOS()) EventBus.getDefault().post(Events.StopSOS())
} }
private fun tryInitCamera(): Boolean { private fun tryInitCamera(): Boolean {
@ -163,7 +159,7 @@ class MyCameraImpl(val context: Context) {
params!!.flashMode = Camera.Parameters.FLASH_MODE_OFF params!!.flashMode = Camera.Parameters.FLASH_MODE_OFF
camera!!.parameters = params camera!!.parameters = params
} catch (e: Exception) { } catch (e: Exception) {
bus!!.post(Events.CameraUnavailable()) EventBus.getDefault().post(Events.CameraUnavailable())
} }
} }
@ -223,12 +219,12 @@ class MyCameraImpl(val context: Context) {
private fun stateChanged(isEnabled: Boolean) { private fun stateChanged(isEnabled: Boolean) {
isFlashlightOn = isEnabled isFlashlightOn = isEnabled
bus!!.post(Events.StateChanged(isEnabled)) EventBus.getDefault().post(Events.StateChanged(isEnabled))
context.updateWidgets(isEnabled) context.updateWidgets(isEnabled)
} }
private fun toggleMarshmallowFlashlight(enable: Boolean) { private fun toggleMarshmallowFlashlight(enable: Boolean) {
marshmallowCamera!!.toggleMarshmallowFlashlight(bus!!, enable) marshmallowCamera!!.toggleMarshmallowFlashlight(enable)
} }
fun releaseCamera() { fun releaseCamera() {
@ -239,7 +235,6 @@ class MyCameraImpl(val context: Context) {
camera?.release() camera?.release()
camera = null camera = null
bus?.unregister(this)
isFlashlightOn = false isFlashlightOn = false
shouldStroboscopeStop = true shouldStroboscopeStop = true
} }
@ -260,10 +255,10 @@ class MyCameraImpl(val context: Context) {
if (isNougatPlus()) { if (isNougatPlus()) {
while (!shouldStroboscopeStop) { while (!shouldStroboscopeStop) {
try { try {
marshmallowCamera!!.toggleMarshmallowFlashlight(bus!!, true) marshmallowCamera!!.toggleMarshmallowFlashlight(true)
val onDuration = if (isStroboSOS) SOS[sosIndex++ % SOS.size] else stroboFrequency val onDuration = if (isStroboSOS) SOS[sosIndex++ % SOS.size] else stroboFrequency
Thread.sleep(onDuration) Thread.sleep(onDuration)
marshmallowCamera!!.toggleMarshmallowFlashlight(bus!!, false) marshmallowCamera!!.toggleMarshmallowFlashlight(false)
val offDuration = if (isStroboSOS) SOS[sosIndex++ % SOS.size] else stroboFrequency val offDuration = if (isStroboSOS) SOS[sosIndex++ % SOS.size] else stroboFrequency
Thread.sleep(offDuration) Thread.sleep(offDuration)
} catch (e: Exception) { } catch (e: Exception) {

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/shortcut_bright_display_background">
<shape android:shape="oval">
<solid android:color="@color/color_primary" />
</shape>
</item>
<item
android:bottom="@dimen/normal_margin"
android:drawable="@drawable/ic_bright_display"
android:left="@dimen/normal_margin"
android:right="@dimen/normal_margin"
android:top="@dimen/normal_margin" />
</layer-list>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/bright_display_holder" android:id="@+id/bright_display_holder"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
@ -9,7 +8,7 @@
android:id="@+id/bright_display" android:id="@+id/bright_display"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@android:color/white"/> android:background="@android:color/white" />
<TextView <TextView
android:id="@+id/bright_display_change_color" android:id="@+id/bright_display_change_color"
@ -20,6 +19,6 @@
android:background="@drawable/button_background" android:background="@drawable/button_background"
android:padding="@dimen/activity_margin" android:padding="@dimen/activity_margin"
android:text="@string/change_color" android:text="@string/change_color"
android:textSize="@dimen/big_text_size"/> android:textSize="@dimen/big_text_size" />
</RelativeLayout> </RelativeLayout>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<ScrollView <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_scrollview" android:id="@+id/main_scrollview"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -23,7 +22,7 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/> app:layout_constraintTop_toTopOf="parent" />
<ImageView <ImageView
android:id="@+id/bright_display_btn" android:id="@+id/bright_display_btn"
@ -37,7 +36,7 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/flashlight_btn"/> app:layout_constraintTop_toBottomOf="@+id/flashlight_btn" />
<TextView <TextView
android:id="@+id/sos_btn" android:id="@+id/sos_btn"
@ -54,7 +53,7 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/bright_display_btn"/> app:layout_constraintTop_toBottomOf="@+id/bright_display_btn" />
<ImageView <ImageView
android:id="@+id/stroboscope_btn" android:id="@+id/stroboscope_btn"
@ -67,7 +66,7 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/sos_btn"/> app:layout_constraintTop_toBottomOf="@+id/sos_btn" />
<com.simplemobiletools.commons.views.MySeekBar <com.simplemobiletools.commons.views.MySeekBar
android:id="@+id/stroboscope_bar" android:id="@+id/stroboscope_bar"
@ -81,7 +80,7 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/stroboscope_btn"/> app:layout_constraintTop_toBottomOf="@+id/stroboscope_btn" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView> </ScrollView>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<ScrollView <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/settings_scrollview" android:id="@+id/settings_scrollview"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -29,7 +28,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:paddingStart="@dimen/medium_margin" android:paddingStart="@dimen/medium_margin"
android:text="@string/purchase_simple_thank_you"/> android:text="@string/purchase_simple_thank_you" />
</RelativeLayout> </RelativeLayout>
@ -50,7 +49,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:paddingStart="@dimen/medium_margin" android:paddingStart="@dimen/medium_margin"
android:text="@string/customize_colors"/> android:text="@string/customize_colors" />
</RelativeLayout> </RelativeLayout>
@ -71,7 +70,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:paddingStart="@dimen/medium_margin" android:paddingStart="@dimen/medium_margin"
android:text="@string/customize_widget_colors"/> android:text="@string/customize_widget_colors" />
</RelativeLayout> </RelativeLayout>
@ -94,7 +93,7 @@
android:clickable="false" android:clickable="false"
android:paddingStart="@dimen/medium_margin" android:paddingStart="@dimen/medium_margin"
android:text="@string/use_english_language" android:text="@string/use_english_language"
app:switchPadding="@dimen/medium_margin"/> app:switchPadding="@dimen/medium_margin" />
</RelativeLayout> </RelativeLayout>
@ -117,7 +116,7 @@
android:clickable="false" android:clickable="false"
android:paddingStart="@dimen/medium_margin" android:paddingStart="@dimen/medium_margin"
android:text="@string/turn_flashlight_on" android:text="@string/turn_flashlight_on"
app:switchPadding="@dimen/medium_margin"/> app:switchPadding="@dimen/medium_margin" />
</RelativeLayout> </RelativeLayout>
@ -139,8 +138,8 @@
android:background="@null" android:background="@null"
android:clickable="false" android:clickable="false"
android:paddingStart="@dimen/medium_margin" android:paddingStart="@dimen/medium_margin"
android:text="@string/bright_display" android:text="@string/show_bright_display"
app:switchPadding="@dimen/medium_margin"/> app:switchPadding="@dimen/medium_margin" />
</RelativeLayout> </RelativeLayout>
@ -163,7 +162,7 @@
android:clickable="false" android:clickable="false"
android:paddingStart="@dimen/medium_margin" android:paddingStart="@dimen/medium_margin"
android:text="@string/show_sos" android:text="@string/show_sos"
app:switchPadding="@dimen/medium_margin"/> app:switchPadding="@dimen/medium_margin" />
</RelativeLayout> </RelativeLayout>
@ -186,7 +185,7 @@
android:clickable="false" android:clickable="false"
android:paddingStart="@dimen/medium_margin" android:paddingStart="@dimen/medium_margin"
android:text="@string/show_stroboscope" android:text="@string/show_stroboscope"
app:switchPadding="@dimen/medium_margin"/> app:switchPadding="@dimen/medium_margin" />
</RelativeLayout> </RelativeLayout>
@ -209,7 +208,7 @@
android:clickable="false" android:clickable="false"
android:paddingStart="@dimen/medium_margin" android:paddingStart="@dimen/medium_margin"
android:text="@string/force_portrait_mode" android:text="@string/force_portrait_mode"
app:switchPadding="@dimen/medium_margin"/> app:switchPadding="@dimen/medium_margin" />
</RelativeLayout> </RelativeLayout>
</LinearLayout> </LinearLayout>

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<ImageView <ImageView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/flashlight_btn" android:id="@+id/flashlight_btn"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="5dp"/> android:layout_margin="5dp" />

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
@ -18,21 +17,21 @@
android:id="@+id/config_image" android:id="@+id/config_image"
android:layout_width="@dimen/main_button_size" android:layout_width="@dimen/main_button_size"
android:layout_height="@dimen/main_button_size" android:layout_height="@dimen/main_button_size"
android:background="@drawable/ic_flashlight"/> android:background="@drawable/ic_flashlight" />
</RelativeLayout> </RelativeLayout>
<ImageView <ImageView
android:id="@+id/config_widget_color" android:id="@+id/config_widget_color"
android:layout_width="@dimen/widget_colorpicker_size" android:layout_width="@dimen/widget_colorpicker_size"
android:layout_height="@dimen/widget_colorpicker_size" android:layout_height="@dimen/widget_colorpicker_size"
android:layout_above="@+id/config_save"/> android:layout_above="@+id/config_save" />
<RelativeLayout <RelativeLayout
android:id="@+id/config_widget_seekbar_holder" android:id="@+id/config_widget_seekbar_holder"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_alignBottom="@+id/config_widget_color"
android:layout_alignTop="@+id/config_widget_color" android:layout_alignTop="@+id/config_widget_color"
android:layout_alignBottom="@+id/config_widget_color"
android:layout_toRightOf="@+id/config_widget_color" android:layout_toRightOf="@+id/config_widget_color"
android:background="@android:color/white"> android:background="@android:color/white">
@ -42,21 +41,21 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:paddingLeft="@dimen/activity_margin" android:paddingLeft="@dimen/activity_margin"
android:paddingRight="@dimen/activity_margin"/> android:paddingRight="@dimen/activity_margin" />
</RelativeLayout> </RelativeLayout>
<Button <Button
android:id="@+id/config_save" android:id="@+id/config_save"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:background="@color/gradient_grey_start" android:background="@color/gradient_grey_start"
android:fontFamily="sans-serif-light" android:fontFamily="sans-serif-light"
android:paddingLeft="@dimen/activity_margin" android:paddingLeft="@dimen/activity_margin"
android:paddingRight="@dimen/activity_margin" android:paddingRight="@dimen/activity_margin"
android:text="@string/ok" android:text="@string/ok"
android:textColor="@color/color_primary" android:textColor="@color/color_primary"
android:textSize="@dimen/big_text_size"/> android:textSize="@dimen/big_text_size" />
</RelativeLayout> </RelativeLayout>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Fənər</string> <string name="app_launcher_name">Fənər</string>
<string name="camera_error">Kamera əlçatan deyil</string> <string name="camera_error">Kamera əlçatan deyil</string>
<string name="camera_permission">Düzgün strob effekti üçün kamera icazəsi gərəkdir</string> <string name="camera_permission">Düzgün strob effekti üçün kamera icazəsi gərəkdir</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">İşıqlı ekran düyməsi göstər</string> <string name="show_bright_display">İşıqlı ekran düyməsi göstər</string>
<string name="show_stroboscope">Stroboskop düyməsi göstər</string> <string name="show_stroboscope">Stroboskop düyməsi göstər</string>
<string name="show_sos">Show an SOS button</string> <string name="show_sos">Show an SOS button</string>
<string name="turn_flashlight_on">Başlanğıcda fənəri aç</string> <string name="turn_flashlight_on">Başlanğıcda fənəri aç</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Svítilna</string> <string name="app_launcher_name">Svítilna</string>
<string name="camera_error">Přístup k fotoaparátu se nezdařil</string> <string name="camera_error">Přístup k fotoaparátu se nezdařil</string>
<string name="camera_permission">Přístup k fotoaparátu je potřebný pro správný stroboskopický efekt</string> <string name="camera_permission">Přístup k fotoaparátu je potřebný pro správný stroboskopický efekt</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Zobrazit tlačítko pro jasný displej</string> <string name="show_bright_display">Zobrazit tlačítko pro jasný displej</string>
<string name="show_stroboscope">Zobrazit tlačítko pro stroboskop</string> <string name="show_stroboscope">Zobrazit tlačítko pro stroboskop</string>
<string name="show_sos">Zobrazit tlačítko SOS</string> <string name="show_sos">Zobrazit tlačítko SOS</string>
<string name="turn_flashlight_on">Zapnout svítilnu po spuštění</string> <string name="turn_flashlight_on">Zapnout svítilnu po spuštění</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Fflacholau</string> <string name="app_launcher_name">Fflacholau</string>
<string name="camera_error">Methwyd cael at y camera</string> <string name="camera_error">Methwyd cael at y camera</string>
<string name="camera_permission">Rhaid cael caniatâd y camera i\'r effaith strobosgop</string> <string name="camera_permission">Rhaid cael caniatâd y camera i\'r effaith strobosgop</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Dangos botwm dangosydd llachar</string> <string name="show_bright_display">Dangos botwm dangosydd llachar</string>
<string name="show_stroboscope">Dangos botwm strobosgop</string> <string name="show_stroboscope">Dangos botwm strobosgop</string>
<string name="show_sos">Show an SOS button</string> <string name="show_sos">Show an SOS button</string>
<string name="turn_flashlight_on">Troi\'r fflacholau ymlaen wrth ddechrau</string> <string name="turn_flashlight_on">Troi\'r fflacholau ymlaen wrth ddechrau</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Taschenlampe</string> <string name="app_launcher_name">Taschenlampe</string>
<string name="camera_error">Beanspruchen der Kamera fehlgeschlagen</string> <string name="camera_error">Beanspruchen der Kamera fehlgeschlagen</string>
<string name="camera_permission">Kamera-Berechtigung ist für den Stroboskopeffekt erforderlich</string> <string name="camera_permission">Kamera-Berechtigung ist für den Stroboskopeffekt erforderlich</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Zeige Button für helles Display</string> <string name="show_bright_display">Zeige Button für helles Display</string>
<string name="show_stroboscope">Zeige Button für Stroboskop</string> <string name="show_stroboscope">Zeige Button für Stroboskop</string>
<string name="show_sos">Show an SOS button</string> <string name="show_sos">Show an SOS button</string>
<string name="turn_flashlight_on">Taschenlampe beim Start einschalten</string> <string name="turn_flashlight_on">Taschenlampe beim Start einschalten</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Φακός</string> <string name="app_launcher_name">Φακός</string>
<string name="camera_error">Η εύρεση της κάμερας απέτυχε</string> <string name="camera_error">Η εύρεση της κάμερας απέτυχε</string>
<string name="camera_permission">Χρειάζεται άδεια χρήσης της κάμερας για τη σωστή λειτουργία στροβοσκοπίου</string> <string name="camera_permission">Χρειάζεται άδεια χρήσης της κάμερας για τη σωστή λειτουργία στροβοσκοπίου</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Προβολή κουμπιού φωτεινότητας</string> <string name="show_bright_display">Προβολή κουμπιού φωτεινότητας</string>
<string name="show_stroboscope">Προβολή κουμπιού στροβοσκοπίου</string> <string name="show_stroboscope">Προβολή κουμπιού στροβοσκοπίου</string>
<string name="show_sos">Προβολή κουμπιού SOS</string> <string name="show_sos">Προβολή κουμπιού SOS</string>
<string name="turn_flashlight_on">Άνοιγμα του φακού κατά την εκκίνηση</string> <string name="turn_flashlight_on">Άνοιγμα του φακού κατά την εκκίνηση</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Linterna</string> <string name="app_launcher_name">Linterna</string>
<string name="camera_error">Ha fallado el acceso a la cámara</string> <string name="camera_error">Ha fallado el acceso a la cámara</string>
<string name="camera_permission">El permiso de acceso a la cámara es necesario para un apropiado efecto estroboscópico</string> <string name="camera_permission">El permiso de acceso a la cámara es necesario para un apropiado efecto estroboscópico</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Mostrar botón de pantalla brillante</string> <string name="show_bright_display">Mostrar botón de pantalla brillante</string>
<string name="show_stroboscope">Mostrar botón de estroboscopio</string> <string name="show_stroboscope">Mostrar botón de estroboscopio</string>
<string name="show_sos">Mostrar botón de SOS</string> <string name="show_sos">Mostrar botón de SOS</string>
<string name="turn_flashlight_on">Encender la linterna al iniciar</string> <string name="turn_flashlight_on">Encender la linterna al iniciar</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Lampe de poche</string> <string name="app_launcher_name">Lampe de poche</string>
<string name="camera_error">Échec de l\'obtention de l\'appareil photo</string> <string name="camera_error">Échec de l\'obtention de l\'appareil photo</string>
<string name="camera_permission">L\'autorisation d\'accès à l\'appareil photo est nécessaire pour un effet stroboscope correct</string> <string name="camera_permission">L\'autorisation d\'accès à l\'appareil photo est nécessaire pour un effet stroboscope correct</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Afficher un bouton écran lumineux</string> <string name="show_bright_display">Afficher un bouton écran lumineux</string>
<string name="show_stroboscope">Afficher un bouton stroboscope</string> <string name="show_stroboscope">Afficher un bouton stroboscope</string>
<string name="show_sos">Show an SOS button</string> <string name="show_sos">Show an SOS button</string>
<string name="turn_flashlight_on">Activer la lampe de poche au démarrage</string> <string name="turn_flashlight_on">Activer la lampe de poche au démarrage</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Svjetiljka</string> <string name="app_launcher_name">Svjetiljka</string>
<string name="camera_error">Nije moguće pristupiti kameri</string> <string name="camera_error">Nije moguće pristupiti kameri</string>
<string name="camera_permission">Dopuštenje za pristup fotoaparatu potrebno je za pravilan stroboskopski efekt</string> <string name="camera_permission">Dopuštenje za pristup fotoaparatu potrebno je za pravilan stroboskopski efekt</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Prikaži gumb za svijetli zaslon</string> <string name="show_bright_display">Prikaži gumb za svijetli zaslon</string>
<string name="show_stroboscope">Prikaži gumb za stroboskop</string> <string name="show_stroboscope">Prikaži gumb za stroboskop</string>
<string name="show_sos">Show an SOS button</string> <string name="show_sos">Show an SOS button</string>
<string name="turn_flashlight_on">Uključi svjetiljku pri pokretanju</string> <string name="turn_flashlight_on">Uključi svjetiljku pri pokretanju</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Torcia</string> <string name="app_launcher_name">Torcia</string>
<string name="camera_error">Impossibile rilevare la fotocamera</string> <string name="camera_error">Impossibile rilevare la fotocamera</string>
<string name="camera_permission">Il permesso per la fotocamera è necessario per l\'effetto stroboscopico</string> <string name="camera_permission">Il permesso per la fotocamera è necessario per l\'effetto stroboscopico</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Mostra un pulsante per lo schermo luminoso</string> <string name="show_bright_display">Mostra un pulsante per lo schermo luminoso</string>
<string name="show_stroboscope">Mostra un pulsante per l\'effetto stroboscopico</string> <string name="show_stroboscope">Mostra un pulsante per l\'effetto stroboscopico</string>
<string name="show_sos">Show an SOS button</string> <string name="show_sos">Show an SOS button</string>
<string name="turn_flashlight_on">Accendi la torcia all\'avvio</string> <string name="turn_flashlight_on">Accendi la torcia all\'avvio</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">フラッシュライト</string> <string name="app_launcher_name">フラッシュライト</string>
<string name="camera_error">カメラの取得に失敗しました</string> <string name="camera_error">カメラの取得に失敗しました</string>
<string name="camera_permission">適切なストロボ効果のために、カメラのアクセス許可が必要です</string> <string name="camera_permission">適切なストロボ効果のために、カメラのアクセス許可が必要です</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">明るく表示ボタンを表示</string> <string name="show_bright_display">明るく表示ボタンを表示</string>
<string name="show_stroboscope">ストロボボタンを表示</string> <string name="show_stroboscope">ストロボボタンを表示</string>
<string name="show_sos">Show an SOS button</string> <string name="show_sos">Show an SOS button</string>
<string name="turn_flashlight_on">Turn flashlight on at startup</string> <string name="turn_flashlight_on">Turn flashlight on at startup</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">손전등</string> <string name="app_launcher_name">손전등</string>
<string name="camera_error">카메라 취득 실패</string> <string name="camera_error">카메라 취득 실패</string>
<string name="camera_permission">적절한 스트로보 스코프 효과를 얻으려면 카메라 사용 권한이 필요합니다.</string> <string name="camera_permission">적절한 스트로보 스코프 효과를 얻으려면 카메라 사용 권한이 필요합니다.</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">브라이트 디스플레이 버튼 활성화</string> <string name="show_bright_display">브라이트 디스플레이 버튼 활성화</string>
<string name="show_stroboscope">스트로보 스코프 버튼 활성화</string> <string name="show_stroboscope">스트로보 스코프 버튼 활성화</string>
<string name="show_sos">Show an SOS button</string> <string name="show_sos">Show an SOS button</string>
<string name="turn_flashlight_on">Turn flashlight on at startup</string> <string name="turn_flashlight_on">Turn flashlight on at startup</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Žibintuvėlis</string> <string name="app_launcher_name">Žibintuvėlis</string>
<string name="camera_error">Fotoaparato įjungti nepavyko</string> <string name="camera_error">Fotoaparato įjungti nepavyko</string>
<string name="camera_permission">Fotoaparato leidimas būtinas tinkamam stroboskopo efektui</string> <string name="camera_permission">Fotoaparato leidimas būtinas tinkamam stroboskopo efektui</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Rodyti ryškaus ekrano mygtuką</string> <string name="show_bright_display">Rodyti ryškaus ekrano mygtuką</string>
<string name="show_stroboscope">Rodyti stroboskopo mygtuką</string> <string name="show_stroboscope">Rodyti stroboskopo mygtuką</string>
<string name="show_sos">Show an SOS button</string> <string name="show_sos">Show an SOS button</string>
<string name="turn_flashlight_on">Įjungti žibintuvėlį paleidus programėlę</string> <string name="turn_flashlight_on">Įjungti žibintuvėlį paleidus programėlę</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Zaklamp</string> <string name="app_launcher_name">Zaklamp</string>
<string name="camera_error">Toegang tot de camera geweigerd</string> <string name="camera_error">Toegang tot de camera geweigerd</string>
<string name="camera_permission">De permissie Camera is nodig voor het stroboscoopeffect</string> <string name="camera_permission">De permissie Camera is nodig voor het stroboscoopeffect</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Knop voor fel scherm tonen</string> <string name="show_bright_display">Knop voor fel scherm tonen</string>
<string name="show_stroboscope">Knop voor stroboscoop tonen</string> <string name="show_stroboscope">Knop voor stroboscoop tonen</string>
<string name="show_sos">Knop voor SOS-noodsignaal tonen</string> <string name="show_sos">Knop voor SOS-noodsignaal tonen</string>
<string name="turn_flashlight_on">Zaklamp bij starten aanzetten</string> <string name="turn_flashlight_on">Zaklamp bij starten aanzetten</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Latarka</string> <string name="app_launcher_name">Latarka</string>
<string name="camera_error">Uzyskanie dostępu do aparatu zakończone niepowodzeniem</string> <string name="camera_error">Uzyskanie dostępu do aparatu zakończone niepowodzeniem</string>
<string name="camera_permission">Uprawnienia dostępu do aparatu są niezbędne w celu uzyskania efektu stroboskopowego</string> <string name="camera_permission">Uprawnienia dostępu do aparatu są niezbędne w celu uzyskania efektu stroboskopowego</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Pokazuj przycisk jasnego wyświetlania</string> <string name="show_bright_display">Pokazuj przycisk jasnego wyświetlania</string>
<string name="show_stroboscope">Pokazuj przycisk stroboskopu</string> <string name="show_stroboscope">Pokazuj przycisk stroboskopu</string>
<string name="show_sos">Show an SOS button</string> <string name="show_sos">Show an SOS button</string>
   <string name="turn_flashlight_on">Włączaj latarkę po uruchomieniu aplikacji</string>    <string name="turn_flashlight_on">Włączaj latarkę po uruchomieniu aplikacji</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Lanterna</string> <string name="app_launcher_name">Lanterna</string>
<string name="camera_error">Erro ao obter a câmera</string> <string name="camera_error">Erro ao obter a câmera</string>
<string name="camera_permission">A permissão para a câmera é necessária para usar o estroboscópio</string> <string name="camera_permission">A permissão para a câmera é necessária para usar o estroboscópio</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Mostrar o botão de Tela com Brilho Forte</string> <string name="show_bright_display">Mostrar o botão de Tela com Brilho Forte</string>
<string name="show_stroboscope">Mostrar o botão do Estroboscópio</string> <string name="show_stroboscope">Mostrar o botão do Estroboscópio</string>
<string name="show_sos">Show an SOS button</string> <string name="show_sos">Show an SOS button</string>
<string name="turn_flashlight_on">Ligar a lanterna ao iniciar o app</string> <string name="turn_flashlight_on">Ligar a lanterna ao iniciar o app</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Lanterna</string> <string name="app_launcher_name">Lanterna</string>
<string name="camera_error">Falha ao obter a câmara</string> <string name="camera_error">Falha ao obter a câmara</string>
<string name="camera_permission">A permissão da câmara é necessária para utilizar o efeito estroboscópio</string> <string name="camera_permission">A permissão da câmara é necessária para utilizar o efeito estroboscópio</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Mostrar botão para iluminar o ecrã</string> <string name="show_bright_display">Mostrar botão para iluminar o ecrã</string>
<string name="show_stroboscope">Mostrar botão de estroboscópio</string> <string name="show_stroboscope">Mostrar botão de estroboscópio</string>
<string name="show_sos">Mostrar um botão de SOS</string> <string name="show_sos">Mostrar um botão de SOS</string>
<string name="turn_flashlight_on">Ativar lanterna ao iniciar</string> <string name="turn_flashlight_on">Ativar lanterna ao iniciar</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Фонарик</string> <string name="app_launcher_name">Фонарик</string>
<string name="camera_error">Не удалось получить доступ к камере</string> <string name="camera_error">Не удалось получить доступ к камере</string>
<string name="camera_permission">Разрешение на доступ к камере необходимо для создания эффекта стробоскопа</string> <string name="camera_permission">Разрешение на доступ к камере необходимо для создания эффекта стробоскопа</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Показать кнопку переключения на белый экран</string> <string name="show_bright_display">Показать кнопку переключения на белый экран</string>
<string name="show_stroboscope">Показать кнопку стробоскопа</string> <string name="show_stroboscope">Показать кнопку стробоскопа</string>
<string name="show_sos">Show an SOS button</string> <string name="show_sos">Show an SOS button</string>
<string name="turn_flashlight_on">Включать фонарик при запуске</string> <string name="turn_flashlight_on">Включать фонарик при запуске</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Baterka</string> <string name="app_launcher_name">Baterka</string>
<string name="camera_error">Prístup ku kamere zlyhal Obtaining the camera failed</string> <string name="camera_error">Prístup ku kamere zlyhal Obtaining the camera failed</string>
<string name="camera_permission">Pre správny stroboskopický efekt je potrebný prístup ku kamere</string> <string name="camera_permission">Pre správny stroboskopický efekt je potrebný prístup ku kamere</string>
<string name="bright_display">Jasný displej</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Zobraziť tlačidlo pre jasný displej</string> <string name="show_bright_display">Zobraziť tlačidlo pre jasný displej</string>
<string name="show_stroboscope">Zobraziť tlačidlo pre stroboskop</string> <string name="show_stroboscope">Zobraziť tlačidlo pre stroboskop</string>
<string name="show_sos">Zobraziť tlačidlo SOS</string> <string name="show_sos">Zobraziť tlačidlo SOS</string>
<string name="turn_flashlight_on">Aktivovať baterku po spustení</string> <string name="turn_flashlight_on">Aktivovať baterku po spustení</string>
@ -16,17 +17,17 @@
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">Moderná jednoduchá baterka s SOS, stroboskopom a jasným displejom bez reklám</string> <string name="app_short_description">Moderná jednoduchá baterka s SOS, stroboskopom a jasným displejom bez reklám</string>
<string name="app_long_description"> <string name="app_long_description">
A clean flashlight with an extra bright display, customizable stroboscope and a predefined SOS mode. Čistá baterka s funkciou extra jasného displeja, voliteľným stroboskopom a SOS módom.
All these functions can be hugely helpful under certain circumstances. Všetky tieto funkcie môžu byť v istých prípadoch veľmi užitočné.
The Bright display can have its color changed, opening a new world of possible uses. It can come handy in case you want to see your wider proximity without blinding yourself. Jasný displej má meniteľnú farbu, čo vytvára celý svet nových možností. Viete si pomocou neho vysvietiť okolie bez toho, že by ste sa oslepili.
The stroboscope can have its frequency changed, ranging from really fast blinking to occasional ones. Strokoskop má voliteľnú frekvenciu od veľmi rýchleho blikania po pomalé.
If this free flashlight is turned on via the app (not widget), it will prevent the device from falling asleep. The strong torch can optionally turn on at launching the app, but it isn\'t mandatory. Ak baterku zapnete štandardným spustením (not cez widget), zabráni uspatiu zariadenia. Baterka sa môže po spustení apky automaticky zapnúť, ale nie je to povinné.
Comes with a 1x1 widget with customizable color and transparency. K dispozícií máte aj 1x1 widget s voliteľnou farbou a priesvitnosťou.
Táto apka je založená na Material dizajne a má prednastavenú tmavú tému, poskytuje výbornú používateľskú skúsenosť pre ľahké používanie. Chýbajúci prístup k internetu garantuje lepšie súkromie, bezpečnosť a stabilitu ako ostatné apky. Táto apka je založená na Material dizajne a má prednastavenú tmavú tému, poskytuje výbornú používateľskú skúsenosť pre ľahké používanie. Chýbajúci prístup k internetu garantuje lepšie súkromie, bezpečnosť a stabilitu ako ostatné apky.

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Ficklampa</string> <string name="app_launcher_name">Ficklampa</string>
<string name="camera_error">Det gick inte att komma åt kameran</string> <string name="camera_error">Det gick inte att komma åt kameran</string>
<string name="camera_permission">Kamerabehörigheten behövs för en riktig stroboskopeffekt</string> <string name="camera_permission">Kamerabehörigheten behövs för en riktig stroboskopeffekt</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Visa en knapp för ljus skärm</string> <string name="show_bright_display">Visa en knapp för ljus skärm</string>
<string name="show_stroboscope">Visa en stroboskopknapp</string> <string name="show_stroboscope">Visa en stroboskopknapp</string>
<string name="show_sos">Show an SOS button</string> <string name="show_sos">Show an SOS button</string>
<string name="turn_flashlight_on">Slå på ficklampan vid start</string> <string name="turn_flashlight_on">Slå på ficklampan vid start</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Fener</string> <string name="app_launcher_name">Fener</string>
<string name="camera_error">Kamera hatası</string> <string name="camera_error">Kamera hatası</string>
<string name="camera_permission">Düzgün stroboskop etkisi için kamera izni gereklidir</string> <string name="camera_permission">Düzgün stroboskop etkisi için kamera izni gereklidir</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Parlak ekran düğmesini göster</string> <string name="show_bright_display">Parlak ekran düğmesini göster</string>
<string name="show_stroboscope">Stroboskop düğmesini göster</string> <string name="show_stroboscope">Stroboskop düğmesini göster</string>
<string name="show_sos">SOS düğmesini göster</string> <string name="show_sos">SOS düğmesini göster</string>
<string name="turn_flashlight_on">Başlangıçta feneri aç</string> <string name="turn_flashlight_on">Başlangıçta feneri aç</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Ліхтарик</string> <string name="app_launcher_name">Ліхтарик</string>
<string name="camera_error">Не вдалося отримати доступ до камери</string> <string name="camera_error">Не вдалося отримати доступ до камери</string>
<string name="camera_permission">Дозвіл на доступ до камери необхідний для створення ефекту стробоскопа</string> <string name="camera_permission">Дозвіл на доступ до камери необхідний для створення ефекту стробоскопа</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Показувати кнопку перемикання на білий дисплей</string> <string name="show_bright_display">Показувати кнопку перемикання на білий дисплей</string>
<string name="show_stroboscope">Показувати кнопку стробоскопа</string> <string name="show_stroboscope">Показувати кнопку стробоскопа</string>
<string name="show_sos">Show an SOS button</string> <string name="show_sos">Show an SOS button</string>
<string name="turn_flashlight_on">Вмикати ліхтарик при запуску</string> <string name="turn_flashlight_on">Вмикати ліхтарик при запуску</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">簡易手電筒</string> <string name="app_launcher_name">簡易手電筒</string>
<string name="camera_error">未能取得相機</string> <string name="camera_error">未能取得相機</string>
<string name="camera_permission">相機權限對於閃爍效果是必要的</string> <string name="camera_permission">相機權限對於閃爍效果是必要的</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">顯示螢幕發亮按鈕</string> <string name="show_bright_display">顯示螢幕發亮按鈕</string>
<string name="show_stroboscope">顯示閃爍效果按鈕</string> <string name="show_stroboscope">顯示閃爍效果按鈕</string>
<string name="show_sos">顯示SOS按鈕</string> <string name="show_sos">顯示SOS按鈕</string>
<string name="turn_flashlight_on">啟動時打開手電筒</string> <string name="turn_flashlight_on">啟動時打開手電筒</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Flashlight</string> <string name="app_launcher_name">Flashlight</string>
<string name="camera_error">Obtaining the camera failed</string> <string name="camera_error">Obtaining the camera failed</string>
<string name="camera_permission">Camera permission is necessary for proper stroboscope effect</string> <string name="camera_permission">Camera permission is necessary for proper stroboscope effect</string>
<string name="bright_display">Bright display</string>
<!-- Settings --> <!-- Settings -->
<string name="bright_display">Show a bright display button</string> <string name="show_bright_display">Show a bright display button</string>
<string name="show_stroboscope">Show a stroboscope button</string> <string name="show_stroboscope">Show a stroboscope button</string>
<string name="show_sos">Show an SOS button</string> <string name="show_sos">Show an SOS button</string>
<string name="turn_flashlight_on">Turn flashlight on at startup</string> <string name="turn_flashlight_on">Turn flashlight on at startup</string>

View File

@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
ext.kotlin_version = '1.3.70' ext.kotlin_version = '1.3.72'
repositories { repositories {
google() google()

View File

@ -0,0 +1,3 @@
* Updated the app icon on lower Android versions
* Added a Bright Display shortcut
* Removed the Camera permission on Android 7+

View File

@ -1,7 +1,24 @@
Jednoduchá baterka s jasným displejom a nastaviteľným stroboskopom. Ak bude zapnutá cez aplikáciu (nie widget), zabráni uspaniu zariadenia. Čistá baterka s funkciou extra jasného displeja, voliteľným stroboskopom a SOS módom.
Poskytuje aj 1x1 widget s nastaviteľnou farbou. Všetky tieto funkcie môžu byť v istých prípadoch veľmi užitočné.
Jasný displej má meniteľnú farbu, čo vytvára celý svet nových možností. Viete si pomocou neho vysvietiť okolie bez toho, že by ste sa oslepili.
Strokoskop má voliteľnú frekvenciu od veľmi rýchleho blikania po pomalé.
Ak baterku zapnete štandardným spustením (not cez widget), zabráni uspatiu zariadenia. Baterka sa môže po spustení apky automaticky zapnúť, ale nie je to povinné.
K dispozícií máte aj 1x1 widget s voliteľnou farbou a priesvitnosťou.
Táto apka je založená na Material dizajne a má prednastavenú tmavú tému, poskytuje výbornú používateľskú skúsenosť pre ľahké používanie. Chýbajúci prístup k internetu garantuje lepšie súkromie, bezpečnosť a stabilitu ako ostatné apky.
Neobsahuje žiadne reklamy a nepotrebné oprávnenia. Je opensource, poskytuje možnosť zmeny farieb. Neobsahuje žiadne reklamy a nepotrebné oprávnenia. Je opensource, poskytuje možnosť zmeny farieb.
Táto aplikácia je iba jednou zo skupiny aplikácií. Ostatné viete nájsť na https://www.simplemobiletools.com <b>Pozrite si celú sadu aplikácií na:</b>
https://www.simplemobiletools.com
<b>Facebook:</b>
https://www.facebook.com/simplemobiletools
<b>Reddit:</b>
https://www.reddit.com/r/SimpleMobileTools

View File

@ -1 +1 @@
Jednoduchá baterka bez reklám Moderná jednoduchá baterka s SOS, stroboskopom a jasným displejom bez reklám

View File

@ -1 +1 @@
Jednoduchá baterka - Nestraťte sa v tme Jednoduchá baterka - Jasný displej a baterka