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
==========
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)*
----------------------------

View File

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

View File

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

View File

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

View File

@ -1,27 +1,31 @@
package com.simplemobiletools.flashlight.activities
import android.annotation.SuppressLint
import android.content.Intent
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.view.Menu
import android.view.MenuItem
import android.view.WindowManager
import android.widget.ImageView
import android.widget.SeekBar
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.isNougatMR1Plus
import com.simplemobiletools.commons.helpers.isNougatPlus
import com.simplemobiletools.commons.models.FAQItem
import com.simplemobiletools.flashlight.BuildConfig
import com.simplemobiletools.flashlight.R
import com.simplemobiletools.flashlight.extensions.config
import com.simplemobiletools.flashlight.helpers.BusProvider
import com.simplemobiletools.flashlight.helpers.MyCameraImpl
import com.simplemobiletools.flashlight.models.Events
import com.squareup.otto.Bus
import com.squareup.otto.Subscribe
import kotlinx.android.synthetic.main.activity_main.*
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import java.util.*
class MainActivity : SimpleActivity() {
private val MAX_STROBO_DELAY = 2000L
@ -29,7 +33,7 @@ class MainActivity : SimpleActivity() {
private val FLASHLIGHT_STATE = "flashlight_state"
private val STROBOSCOPE_STATE = "stroboscope_state"
private var mBus: Bus? = null
private var mBus: EventBus? = null
private var mCameraImpl: MyCameraImpl? = null
private var mIsFlashlightOn = false
private var reTurnFlashlightOn = true
@ -39,7 +43,7 @@ class MainActivity : SimpleActivity() {
setContentView(R.layout.activity_main)
appLaunched(BuildConfig.APPLICATION_ID)
mBus = BusProvider.instance
mBus = EventBus.getDefault()
changeIconColor(getContrastColor(), stroboscope_btn)
bright_display_btn.setOnClickListener {
@ -87,11 +91,14 @@ class MainActivity : SimpleActivity() {
requestedOrientation = if (config.forcePortraitMode) ActivityInfo.SCREEN_ORIENTATION_PORTRAIT else ActivityInfo.SCREEN_ORIENTATION_SENSOR
invalidateOptionsMenu()
if(config.turnFlashlightOn && reTurnFlashlightOn){
if(config.turnFlashlightOn && reTurnFlashlightOn) {
mCameraImpl!!.enableFlashlight()
}
reTurnFlashlightOn = true
checkShortcuts()
}
override fun onStart() {
@ -157,10 +164,10 @@ class MainActivity : SimpleActivity() {
val licenses = LICENSE_OTTO
val faqItems = arrayListOf(
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_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_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_2_title_commons, R.string.faq_2_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)
@ -176,22 +183,12 @@ class MainActivity : SimpleActivity() {
private fun setupStroboscope() {
stroboscope_bar.max = (MAX_STROBO_DELAY - MIN_STROBO_DELAY).toInt()
stroboscope_bar.progress = config.stroboscopeProgress
stroboscope_bar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar, progress: Int, b: Boolean) {
val frequency = stroboscope_bar.max - progress + MIN_STROBO_DELAY
mCameraImpl?.stroboFrequency = frequency
config.stroboscopeFrequency = frequency
config.stroboscopeProgress = progress
}
override fun onStartTrackingTouch(seekBar: SeekBar) {
}
override fun onStopTrackingTouch(seekBar: SeekBar) {
}
})
stroboscope_bar.onSeekBarChangeListener { progress ->
val frequency = stroboscope_bar.max - progress + MIN_STROBO_DELAY
mCameraImpl?.stroboFrequency = frequency
config.stroboscopeFrequency = frequency
config.stroboscopeProgress = progress
}
}
private fun toggleStroboscope(isSOS: Boolean) {
@ -273,6 +270,37 @@ class MainActivity : SimpleActivity() {
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
fun cameraUnavailable(event: Events.CameraUnavailable) {
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.Handler
import com.simplemobiletools.flashlight.models.Events
import com.squareup.otto.Bus
import org.greenrobot.eventbus.EventBus
internal class MarshmallowCamera constructor(val context: Context) {
@ -21,12 +21,12 @@ internal class MarshmallowCamera constructor(val context: Context) {
}
@TargetApi(Build.VERSION_CODES.M)
fun toggleMarshmallowFlashlight(bus: Bus, enable: Boolean) {
fun toggleMarshmallowFlashlight(enable: Boolean) {
try {
manager.setTorchMode(cameraId!!, enable)
} catch (e: Exception) {
val mainRunnable = Runnable {
bus.post(Events.CameraUnavailable())
EventBus.getDefault().post(Events.CameraUnavailable())
}
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.updateWidgets
import com.simplemobiletools.flashlight.models.Events
import com.squareup.otto.Bus
import org.greenrobot.eventbus.EventBus
import java.io.IOException
class MyCameraImpl(val context: Context) {
@ -23,16 +23,18 @@ class MyCameraImpl(val context: Context) {
private var camera: Camera? = null
private var params: Camera.Parameters? = null
private var bus: Bus? = null
private var isMarshmallow = false
private var shouldEnableFlashlight = false
private var isStroboSOS = false // are we sending SOS, or casual stroboscope?
private var marshmallowCamera: MarshmallowCamera? = null
@Volatile
private var shouldStroboscopeStop = false
@Volatile
private var isStroboscopeRunning = false
@Volatile
private var isSOSRunning = false
@ -41,12 +43,6 @@ class MyCameraImpl(val context: Context) {
init {
isMarshmallow = isMarshmallowPlus()
if (bus == null) {
bus = BusProvider.instance
bus!!.register(this)
}
handleCameraSetup()
stroboFrequency = context.config.stroboscopeFrequency
}
@ -82,7 +78,7 @@ class MyCameraImpl(val context: Context) {
fun stopStroboscope() {
shouldStroboscopeStop = true
bus!!.post(Events.StopStroboscope())
EventBus.getDefault().post(Events.StopStroboscope())
}
fun toggleSOS(): Boolean {
@ -115,7 +111,7 @@ class MyCameraImpl(val context: Context) {
fun stopSOS() {
shouldStroboscopeStop = true
bus!!.post(Events.StopSOS())
EventBus.getDefault().post(Events.StopSOS())
}
private fun tryInitCamera(): Boolean {
@ -163,7 +159,7 @@ class MyCameraImpl(val context: Context) {
params!!.flashMode = Camera.Parameters.FLASH_MODE_OFF
camera!!.parameters = params
} 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) {
isFlashlightOn = isEnabled
bus!!.post(Events.StateChanged(isEnabled))
EventBus.getDefault().post(Events.StateChanged(isEnabled))
context.updateWidgets(isEnabled)
}
private fun toggleMarshmallowFlashlight(enable: Boolean) {
marshmallowCamera!!.toggleMarshmallowFlashlight(bus!!, enable)
marshmallowCamera!!.toggleMarshmallowFlashlight(enable)
}
fun releaseCamera() {
@ -239,7 +235,6 @@ class MyCameraImpl(val context: Context) {
camera?.release()
camera = null
bus?.unregister(this)
isFlashlightOn = false
shouldStroboscopeStop = true
}
@ -260,10 +255,10 @@ class MyCameraImpl(val context: Context) {
if (isNougatPlus()) {
while (!shouldStroboscopeStop) {
try {
marshmallowCamera!!.toggleMarshmallowFlashlight(bus!!, true)
marshmallowCamera!!.toggleMarshmallowFlashlight(true)
val onDuration = if (isStroboSOS) SOS[sosIndex++ % SOS.size] else stroboFrequency
Thread.sleep(onDuration)
marshmallowCamera!!.toggleMarshmallowFlashlight(bus!!, false)
marshmallowCamera!!.toggleMarshmallowFlashlight(false)
val offDuration = if (isStroboSOS) SOS[sosIndex++ % SOS.size] else stroboFrequency
Thread.sleep(offDuration)
} 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"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/bright_display_holder"
android:layout_width="match_parent"
android:layout_height="match_parent">
@ -9,7 +8,7 @@
android:id="@+id/bright_display"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"/>
android:background="@android:color/white" />
<TextView
android:id="@+id/bright_display_change_color"
@ -20,6 +19,6 @@
android:background="@drawable/button_background"
android:padding="@dimen/activity_margin"
android:text="@string/change_color"
android:textSize="@dimen/big_text_size"/>
android:textSize="@dimen/big_text_size" />
</RelativeLayout>

View File

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

View File

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

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/flashlight_btn"
android:layout_width="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"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
@ -18,21 +17,21 @@
android:id="@+id/config_image"
android:layout_width="@dimen/main_button_size"
android:layout_height="@dimen/main_button_size"
android:background="@drawable/ic_flashlight"/>
android:background="@drawable/ic_flashlight" />
</RelativeLayout>
<ImageView
android:id="@+id/config_widget_color"
android:layout_width="@dimen/widget_colorpicker_size"
android:layout_height="@dimen/widget_colorpicker_size"
android:layout_above="@+id/config_save"/>
android:layout_above="@+id/config_save" />
<RelativeLayout
android:id="@+id/config_widget_seekbar_holder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignBottom="@+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:background="@android:color/white">
@ -42,21 +41,21 @@
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:paddingLeft="@dimen/activity_margin"
android:paddingRight="@dimen/activity_margin"/>
android:paddingRight="@dimen/activity_margin" />
</RelativeLayout>
<Button
android:id="@+id/config_save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:background="@color/gradient_grey_start"
android:fontFamily="sans-serif-light"
android:paddingLeft="@dimen/activity_margin"
android:paddingRight="@dimen/activity_margin"
android:text="@string/ok"
android:textColor="@color/color_primary"
android:textSize="@dimen/big_text_size"/>
android:textSize="@dimen/big_text_size" />
</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="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="bright_display">Bright display</string>
<!-- 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_sos">Show an SOS button</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="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="bright_display">Bright display</string>
<!-- 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_sos">Zobrazit tlačítko SOS</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="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="bright_display">Bright display</string>
<!-- 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_sos">Show an SOS button</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="camera_error">Beanspruchen der Kamera fehlgeschlagen</string>
<string name="camera_permission">Kamera-Berechtigung ist für den Stroboskopeffekt erforderlich</string>
<string name="bright_display">Bright display</string>
<!-- 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_sos">Show an SOS button</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="camera_error">Η εύρεση της κάμερας απέτυχε</string>
<string name="camera_permission">Χρειάζεται άδεια χρήσης της κάμερας για τη σωστή λειτουργία στροβοσκοπίου</string>
<string name="bright_display">Bright display</string>
<!-- Settings -->
<string name="bright_display">Προβολή κουμπιού φωτεινότητας</string>
<string name="show_bright_display">Προβολή κουμπιού φωτεινότητας</string>
<string name="show_stroboscope">Προβολή κουμπιού στροβοσκοπίου</string>
<string name="show_sos">Προβολή κουμπιού SOS</string>
<string name="turn_flashlight_on">Άνοιγμα του φακού κατά την εκκίνηση</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Linterna</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="bright_display">Bright display</string>
<!-- 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_sos">Mostrar botón de SOS</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="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="bright_display">Bright display</string>
<!-- 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_sos">Show an SOS button</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="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="bright_display">Bright display</string>
<!-- 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_sos">Show an SOS button</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="camera_error">Impossibile rilevare la fotocamera</string>
<string name="camera_permission">Il permesso per la fotocamera è necessario per l\'effetto stroboscopico</string>
<string name="bright_display">Bright display</string>
<!-- 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_sos">Show an SOS button</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="camera_error">カメラの取得に失敗しました</string>
<string name="camera_permission">適切なストロボ効果のために、カメラのアクセス許可が必要です</string>
<string name="bright_display">Bright display</string>
<!-- Settings -->
<string name="bright_display">明るく表示ボタンを表示</string>
<string name="show_bright_display">明るく表示ボタンを表示</string>
<string name="show_stroboscope">ストロボボタンを表示</string>
<string name="show_sos">Show an SOS button</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="camera_error">카메라 취득 실패</string>
<string name="camera_permission">적절한 스트로보 스코프 효과를 얻으려면 카메라 사용 권한이 필요합니다.</string>
<string name="bright_display">Bright display</string>
<!-- Settings -->
<string name="bright_display">브라이트 디스플레이 버튼 활성화</string>
<string name="show_bright_display">브라이트 디스플레이 버튼 활성화</string>
<string name="show_stroboscope">스트로보 스코프 버튼 활성화</string>
<string name="show_sos">Show an SOS button</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="camera_error">Fotoaparato įjungti nepavyko</string>
<string name="camera_permission">Fotoaparato leidimas būtinas tinkamam stroboskopo efektui</string>
<string name="bright_display">Bright display</string>
<!-- 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_sos">Show an SOS button</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="camera_error">Toegang tot de camera geweigerd</string>
<string name="camera_permission">De permissie Camera is nodig voor het stroboscoopeffect</string>
<string name="bright_display">Bright display</string>
<!-- 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_sos">Knop voor SOS-noodsignaal tonen</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="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="bright_display">Bright display</string>
<!-- 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_sos">Show an SOS button</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="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="bright_display">Bright display</string>
<!-- 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_sos">Show an SOS button</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="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="bright_display">Bright display</string>
<!-- 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_sos">Mostrar um botão de SOS</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="camera_error">Не удалось получить доступ к камере</string>
<string name="camera_permission">Разрешение на доступ к камере необходимо для создания эффекта стробоскопа</string>
<string name="bright_display">Bright display</string>
<!-- Settings -->
<string name="bright_display">Показать кнопку переключения на белый экран</string>
<string name="show_bright_display">Показать кнопку переключения на белый экран</string>
<string name="show_stroboscope">Показать кнопку стробоскопа</string>
<string name="show_sos">Show an SOS button</string>
<string name="turn_flashlight_on">Включать фонарик при запуске</string>

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Baterka</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="bright_display">Jasný displej</string>
<!-- 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_sos">Zobraziť tlačidlo SOS</string>
<string name="turn_flashlight_on">Aktivovať baterku po spustení</string>
@ -16,17 +17,17 @@
<!-- 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_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.

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Ficklampa</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="bright_display">Bright display</string>
<!-- 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_sos">Show an SOS button</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="camera_error">Kamera hatası</string>
<string name="camera_permission">Düzgün stroboskop etkisi için kamera izni gereklidir</string>
<string name="bright_display">Bright display</string>
<!-- 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_sos">SOS düğmesini göster</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="camera_error">Не вдалося отримати доступ до камери</string>
<string name="camera_permission">Дозвіл на доступ до камери необхідний для створення ефекту стробоскопа</string>
<string name="bright_display">Bright display</string>
<!-- Settings -->
<string name="bright_display">Показувати кнопку перемикання на білий дисплей</string>
<string name="show_bright_display">Показувати кнопку перемикання на білий дисплей</string>
<string name="show_stroboscope">Показувати кнопку стробоскопа</string>
<string name="show_sos">Show an SOS button</string>
<string name="turn_flashlight_on">Вмикати ліхтарик при запуску</string>

View File

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

View File

@ -3,9 +3,10 @@
<string name="app_launcher_name">Flashlight</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="bright_display">Bright display</string>
<!-- 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_sos">Show an SOS button</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.
buildscript {
ext.kotlin_version = '1.3.70'
ext.kotlin_version = '1.3.72'
repositories {
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.
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