mirror of
https://github.com/FossifyOrg/Gallery.git
synced 2024-11-26 22:47:59 +01:00
Merge pull request #623 from trubitsyn/drag-images
Allow changing the brightness by dragging on images
This commit is contained in:
commit
2ca0bded2d
35 changed files with 275 additions and 146 deletions
|
@ -51,6 +51,7 @@ class SettingsActivity : SimpleActivity() {
|
|||
setupPasswordProtection()
|
||||
setupAppPasswordProtection()
|
||||
setupDeleteEmptyFolders()
|
||||
setupAllowPhotoGestures()
|
||||
setupAllowVideoGestures()
|
||||
setupShowMediaCount()
|
||||
setupKeepLastModified()
|
||||
|
@ -259,6 +260,14 @@ class SettingsActivity : SimpleActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
private fun setupAllowPhotoGestures() {
|
||||
settings_allow_photo_gestures.isChecked = config.allowPhotoGestures
|
||||
settings_allow_photo_gestures_holder.setOnClickListener {
|
||||
settings_allow_photo_gestures.toggle()
|
||||
config.allowPhotoGestures = settings_allow_photo_gestures.isChecked
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupAllowVideoGestures() {
|
||||
settings_allow_video_gestures.isChecked = config.allowVideoGestures
|
||||
settings_allow_video_gestures_holder.setOnClickListener {
|
||||
|
|
|
@ -30,6 +30,7 @@ import com.simplemobiletools.gallery.activities.ViewPagerActivity
|
|||
import com.simplemobiletools.gallery.extensions.*
|
||||
import com.simplemobiletools.gallery.helpers.GlideRotateTransformation
|
||||
import com.simplemobiletools.gallery.helpers.MEDIUM
|
||||
import com.simplemobiletools.gallery.helpers.MediaSideScroll
|
||||
import com.simplemobiletools.gallery.models.Medium
|
||||
import it.sephiroth.android.library.exif2.ExifInterface
|
||||
import kotlinx.android.synthetic.main.pager_photo_item.view.*
|
||||
|
@ -49,6 +50,8 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
private var storedHideExtendedDetails = false
|
||||
private var storedExtendedDetails = 0
|
||||
|
||||
private lateinit var mediaSideScroll: MediaSideScroll
|
||||
|
||||
lateinit var view: ViewGroup
|
||||
lateinit var medium: Medium
|
||||
|
||||
|
@ -58,6 +61,10 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
gif_view.setOnClickListener { photoClicked() }
|
||||
instant_prev_item.setOnClickListener { listener?.goToPrevItem() }
|
||||
instant_next_item.setOnClickListener { listener?.goToNextItem() }
|
||||
photo_brightness_controller.setOnTouchListener { v, event ->
|
||||
mediaSideScroll.handleBrightnessTouched(event)
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
storeStateVariables()
|
||||
|
@ -105,6 +112,11 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
return view
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
mediaSideScroll = MediaSideScroll(activity!!, view.slide_info)
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
storeStateVariables()
|
||||
|
@ -116,9 +128,15 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
checkExtendedDetails()
|
||||
}
|
||||
|
||||
val allowPhotoGestures = context!!.config.allowPhotoGestures
|
||||
val allowInstantChange = context!!.config.allowInstantChange
|
||||
view.instant_prev_item.beVisibleIf(allowInstantChange)
|
||||
view.instant_next_item.beVisibleIf(allowInstantChange)
|
||||
|
||||
view.apply {
|
||||
photo_brightness_controller.beVisibleIf(allowPhotoGestures)
|
||||
instant_prev_item.beVisibleIf(allowInstantChange)
|
||||
instant_next_item.beVisibleIf(allowInstantChange)
|
||||
}
|
||||
|
||||
storeStateVariables()
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@ import android.net.Uri
|
|||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.provider.Settings
|
||||
import android.support.annotation.RequiresApi
|
||||
import android.util.DisplayMetrics
|
||||
import android.view.*
|
||||
|
@ -17,16 +16,17 @@ import android.widget.TextView
|
|||
import com.simplemobiletools.commons.extensions.*
|
||||
import com.simplemobiletools.gallery.R
|
||||
import com.simplemobiletools.gallery.activities.VideoActivity
|
||||
import com.simplemobiletools.gallery.activities.ViewPagerActivity
|
||||
import com.simplemobiletools.gallery.extensions.*
|
||||
import com.simplemobiletools.gallery.extensions.config
|
||||
import com.simplemobiletools.gallery.extensions.navigationBarHeight
|
||||
import com.simplemobiletools.gallery.extensions.usableScreenSize
|
||||
import com.simplemobiletools.gallery.extensions.windowManager
|
||||
import com.simplemobiletools.gallery.helpers.MEDIUM
|
||||
import com.simplemobiletools.gallery.helpers.MediaSideScroll
|
||||
import com.simplemobiletools.gallery.models.Medium
|
||||
import kotlinx.android.synthetic.main.pager_video_item.view.*
|
||||
import java.io.IOException
|
||||
|
||||
class VideoFragment : ViewPagerFragment(), SurfaceHolder.Callback, SeekBar.OnSeekBarChangeListener {
|
||||
private val CLICK_MAX_DURATION = 150
|
||||
private val SLIDE_INFO_FADE_DELAY = 1000L
|
||||
private val PROGRESS = "progress"
|
||||
|
||||
private var mMediaPlayer: MediaPlayer? = null
|
||||
|
@ -50,21 +50,12 @@ class VideoFragment : ViewPagerFragment(), SurfaceHolder.Callback, SeekBar.OnSee
|
|||
private var mDuration = 0
|
||||
private var mEncodedPath = ""
|
||||
|
||||
private var mTouchDownX = 0f
|
||||
private var mTouchDownY = 0f
|
||||
private var mTouchDownTime = 0L
|
||||
private var mTouchDownVolume = 0
|
||||
private var mTouchDownBrightness = -1
|
||||
private var mTempBrightness = 0
|
||||
private var mLastTouchY = 0f
|
||||
|
||||
private var mSlideInfoText = ""
|
||||
private var mSlideInfoFadeHandler = Handler()
|
||||
|
||||
private var mStoredShowExtendedDetails = false
|
||||
private var mStoredHideExtendedDetails = false
|
||||
private var mStoredExtendedDetails = 0
|
||||
|
||||
private lateinit var mediaSideScroll: MediaSideScroll
|
||||
|
||||
lateinit var medium: Medium
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
|
@ -94,6 +85,14 @@ class VideoFragment : ViewPagerFragment(), SurfaceHolder.Callback, SeekBar.OnSee
|
|||
return mView
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
mediaSideScroll = MediaSideScroll(activity!!, view.slide_info)
|
||||
mediaSideScroll.onClickOnSlider = {
|
||||
view.video_holder.performClick()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
activity!!.updateTextColors(mView!!.video_holder)
|
||||
|
@ -145,13 +144,15 @@ class VideoFragment : ViewPagerFragment(), SurfaceHolder.Callback, SeekBar.OnSee
|
|||
mSurfaceHolder!!.addCallback(this)
|
||||
mSurfaceView!!.setOnClickListener { toggleFullscreen() }
|
||||
mView!!.video_holder.setOnClickListener { toggleFullscreen() }
|
||||
|
||||
mView!!.video_volume_controller.setOnTouchListener { v, event ->
|
||||
handleVolumeTouched(event)
|
||||
mediaSideScroll.handleVolumeTouched(event)
|
||||
true
|
||||
true
|
||||
}
|
||||
|
||||
mView!!.video_brightness_controller.setOnTouchListener { v, event ->
|
||||
handleBrightnessTouched(event)
|
||||
mediaSideScroll.handleBrightnessTouched(event)
|
||||
true
|
||||
}
|
||||
|
||||
|
@ -186,129 +187,6 @@ class VideoFragment : ViewPagerFragment(), SurfaceHolder.Callback, SeekBar.OnSee
|
|||
listener?.fragmentClicked()
|
||||
}
|
||||
|
||||
private fun handleVolumeTouched(event: MotionEvent) {
|
||||
when (event.action) {
|
||||
MotionEvent.ACTION_DOWN -> {
|
||||
mTouchDownX = event.x
|
||||
mTouchDownY = event.y
|
||||
mLastTouchY = event.y
|
||||
mTouchDownTime = System.currentTimeMillis()
|
||||
mTouchDownVolume = getCurrentVolume()
|
||||
mSlideInfoText = "${getString(R.string.volume)}:\n"
|
||||
}
|
||||
MotionEvent.ACTION_MOVE -> {
|
||||
val diffX = mTouchDownX - event.x
|
||||
val diffY = mTouchDownY - event.y
|
||||
|
||||
if (Math.abs(diffY) > 20 && Math.abs(diffY) > Math.abs(diffX)) {
|
||||
var percent = ((diffY / ViewPagerActivity.screenHeight) * 100).toInt() * 3
|
||||
percent = Math.min(100, Math.max(-100, percent))
|
||||
|
||||
if ((percent == 100 && event.y > mLastTouchY) || (percent == -100 && event.y < mLastTouchY)) {
|
||||
mTouchDownY = event.y
|
||||
mTouchDownVolume = getCurrentVolume()
|
||||
}
|
||||
|
||||
volumePercentChanged(percent)
|
||||
}
|
||||
mLastTouchY = event.y
|
||||
}
|
||||
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
|
||||
val diffX = Math.abs(event.x - mTouchDownX)
|
||||
val diffY = Math.abs(event.y - mTouchDownY)
|
||||
if (System.currentTimeMillis() - mTouchDownTime < CLICK_MAX_DURATION && diffX < 20 && diffY < 20) {
|
||||
mView!!.video_holder.performClick()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleBrightnessTouched(event: MotionEvent) {
|
||||
when (event.action) {
|
||||
MotionEvent.ACTION_DOWN -> {
|
||||
mTouchDownX = event.x
|
||||
mTouchDownY = event.y
|
||||
mLastTouchY = event.y
|
||||
mTouchDownTime = System.currentTimeMillis()
|
||||
mSlideInfoText = "${getString(R.string.brightness)}:\n"
|
||||
if (mTouchDownBrightness == -1)
|
||||
mTouchDownBrightness = getCurrentBrightness()
|
||||
}
|
||||
MotionEvent.ACTION_MOVE -> {
|
||||
val diffX = mTouchDownX - event.x
|
||||
val diffY = mTouchDownY - event.y
|
||||
|
||||
if (Math.abs(diffY) > 20 && Math.abs(diffY) > Math.abs(diffX)) {
|
||||
var percent = ((diffY / ViewPagerActivity.screenHeight) * 100).toInt() * 3
|
||||
percent = Math.min(100, Math.max(-100, percent))
|
||||
|
||||
if ((percent == 100 && event.y > mLastTouchY) || (percent == -100 && event.y < mLastTouchY)) {
|
||||
mTouchDownY = event.y
|
||||
mTouchDownBrightness = mTempBrightness
|
||||
}
|
||||
|
||||
brightnessPercentChanged(percent)
|
||||
}
|
||||
mLastTouchY = event.y
|
||||
}
|
||||
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
|
||||
val diffX = Math.abs(event.x - mTouchDownX)
|
||||
val diffY = Math.abs(event.y - mTouchDownY)
|
||||
if (System.currentTimeMillis() - mTouchDownTime < CLICK_MAX_DURATION && diffX < 20 && diffY < 20) {
|
||||
mView!!.video_holder.performClick()
|
||||
}
|
||||
mTouchDownBrightness = mTempBrightness
|
||||
}
|
||||
}
|
||||
mView!!.video_holder
|
||||
}
|
||||
|
||||
private fun getCurrentVolume() = context!!.audioManager.getStreamVolume(AudioManager.STREAM_MUSIC)
|
||||
|
||||
private fun getCurrentBrightness() = Settings.System.getInt(activity!!.contentResolver, Settings.System.SCREEN_BRIGHTNESS)
|
||||
|
||||
private fun volumePercentChanged(percent: Int) {
|
||||
val stream = AudioManager.STREAM_MUSIC
|
||||
val maxVolume = context!!.audioManager.getStreamMaxVolume(stream)
|
||||
val percentPerPoint = 100 / maxVolume
|
||||
val addPoints = percent / percentPerPoint
|
||||
val newVolume = Math.min(maxVolume, Math.max(0, mTouchDownVolume + addPoints))
|
||||
context!!.audioManager.setStreamVolume(stream, newVolume, 0)
|
||||
|
||||
val absolutePercent = ((newVolume / maxVolume.toFloat()) * 100).toInt()
|
||||
mView!!.slide_info.apply {
|
||||
text = "$mSlideInfoText$absolutePercent%"
|
||||
alpha = 1f
|
||||
}
|
||||
|
||||
mSlideInfoFadeHandler.removeCallbacksAndMessages(null)
|
||||
mSlideInfoFadeHandler.postDelayed({
|
||||
mView!!.slide_info.animate().alpha(0f)
|
||||
}, SLIDE_INFO_FADE_DELAY)
|
||||
}
|
||||
|
||||
private fun brightnessPercentChanged(percent: Int) {
|
||||
val maxBrightness = 255f
|
||||
var newBrightness = (mTouchDownBrightness + 2.55 * percent).toFloat()
|
||||
newBrightness = Math.min(maxBrightness, Math.max(0f, newBrightness))
|
||||
mTempBrightness = newBrightness.toInt()
|
||||
|
||||
val absolutePercent = ((newBrightness / maxBrightness) * 100).toInt()
|
||||
mView!!.slide_info.apply {
|
||||
text = "$mSlideInfoText$absolutePercent%"
|
||||
alpha = 1f
|
||||
}
|
||||
|
||||
val attributes = activity!!.window.attributes
|
||||
attributes.screenBrightness = absolutePercent / 100f
|
||||
activity!!.window.attributes = attributes
|
||||
|
||||
mSlideInfoFadeHandler.removeCallbacksAndMessages(null)
|
||||
mSlideInfoFadeHandler.postDelayed({
|
||||
mView!!.slide_info.animate().alpha(0f)
|
||||
}, SLIDE_INFO_FADE_DELAY)
|
||||
}
|
||||
|
||||
private fun initTimeHolder() {
|
||||
val res = resources
|
||||
val height = context!!.navigationBarHeight
|
||||
|
|
|
@ -253,6 +253,10 @@ class Config(context: Context) : BaseConfig(context) {
|
|||
get() = prefs.getBoolean(DELETE_EMPTY_FOLDERS, false)
|
||||
set(deleteEmptyFolders) = prefs.edit().putBoolean(DELETE_EMPTY_FOLDERS, deleteEmptyFolders).apply()
|
||||
|
||||
var allowPhotoGestures: Boolean
|
||||
get() = prefs.getBoolean(ALLOW_PHOTO_GESTURES, true)
|
||||
set(allowPhotoGestures) = prefs.edit().putBoolean(ALLOW_PHOTO_GESTURES, allowPhotoGestures).apply()
|
||||
|
||||
var allowVideoGestures: Boolean
|
||||
get() = prefs.getBoolean(ALLOW_VIDEO_GESTURES, true)
|
||||
set(allowVideoGestures) = prefs.edit().putBoolean(ALLOW_VIDEO_GESTURES, allowVideoGestures).apply()
|
||||
|
|
|
@ -35,6 +35,7 @@ const val SCROLL_HORIZONTALLY = "scroll_horizontally"
|
|||
const val HIDE_SYSTEM_UI = "hide_system_ui"
|
||||
const val REPLACE_SHARE_WITH_ROTATE = "replace_share_with_rotate"
|
||||
const val DELETE_EMPTY_FOLDERS = "delete_empty_folders"
|
||||
const val ALLOW_PHOTO_GESTURES = "allow_photo_gestures"
|
||||
const val ALLOW_VIDEO_GESTURES = "allow_video_gestures"
|
||||
const val SHOW_MEDIA_COUNT = "show_media_count"
|
||||
const val TEMP_FOLDER_PATH = "temp_folder_path"
|
||||
|
|
|
@ -0,0 +1,150 @@
|
|||
package com.simplemobiletools.gallery.helpers
|
||||
|
||||
import android.app.Activity
|
||||
import android.media.AudioManager
|
||||
import android.os.Handler
|
||||
import android.provider.Settings
|
||||
import android.view.MotionEvent
|
||||
import android.widget.TextView
|
||||
import com.simplemobiletools.gallery.R
|
||||
import com.simplemobiletools.gallery.activities.ViewPagerActivity
|
||||
import com.simplemobiletools.gallery.extensions.audioManager
|
||||
|
||||
class MediaSideScroll(val activity: Activity, val slideInfoView: TextView) {
|
||||
private val CLICK_MAX_DURATION = 150
|
||||
private val SLIDE_INFO_FADE_DELAY = 1000L
|
||||
private var mTouchDownX = 0f
|
||||
private var mTouchDownY = 0f
|
||||
private var mTouchDownTime = 0L
|
||||
private var mTouchDownVolume = 0
|
||||
private var mTouchDownBrightness = -1
|
||||
private var mTempBrightness = 0
|
||||
private var mLastTouchY = 0f
|
||||
|
||||
private var mSlideInfoText = ""
|
||||
private var mSlideInfoFadeHandler = Handler()
|
||||
|
||||
var onClickOnSlider: (() -> Unit)? = null
|
||||
|
||||
fun handleVolumeTouched(event: MotionEvent) {
|
||||
when (event.action) {
|
||||
MotionEvent.ACTION_DOWN -> {
|
||||
mTouchDownX = event.x
|
||||
mTouchDownY = event.y
|
||||
mLastTouchY = event.y
|
||||
mTouchDownTime = System.currentTimeMillis()
|
||||
mTouchDownVolume = getCurrentVolume()
|
||||
mSlideInfoText = "${activity.getString(R.string.volume)}:\n"
|
||||
}
|
||||
MotionEvent.ACTION_MOVE -> {
|
||||
val diffX = mTouchDownX - event.x
|
||||
val diffY = mTouchDownY - event.y
|
||||
|
||||
if (Math.abs(diffY) > 20 && Math.abs(diffY) > Math.abs(diffX)) {
|
||||
var percent = ((diffY / ViewPagerActivity.screenHeight) * 100).toInt() * 3
|
||||
percent = Math.min(100, Math.max(-100, percent))
|
||||
|
||||
if ((percent == 100 && event.y > mLastTouchY) || (percent == -100 && event.y < mLastTouchY)) {
|
||||
mTouchDownY = event.y
|
||||
mTouchDownVolume = getCurrentVolume()
|
||||
}
|
||||
|
||||
volumePercentChanged(percent)
|
||||
}
|
||||
mLastTouchY = event.y
|
||||
}
|
||||
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
|
||||
val diffX = Math.abs(event.x - mTouchDownX)
|
||||
val diffY = Math.abs(event.y - mTouchDownY)
|
||||
if (System.currentTimeMillis() - mTouchDownTime < CLICK_MAX_DURATION && diffX < 20 && diffY < 20) {
|
||||
onClickOnSlider?.invoke()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun handleBrightnessTouched(event: MotionEvent) {
|
||||
when (event.action) {
|
||||
MotionEvent.ACTION_DOWN -> {
|
||||
mTouchDownX = event.x
|
||||
mTouchDownY = event.y
|
||||
mLastTouchY = event.y
|
||||
mTouchDownTime = System.currentTimeMillis()
|
||||
mSlideInfoText = "${activity.getString(R.string.brightness)}:\n"
|
||||
if (mTouchDownBrightness == -1)
|
||||
mTouchDownBrightness = getCurrentBrightness()
|
||||
}
|
||||
MotionEvent.ACTION_MOVE -> {
|
||||
val diffX = mTouchDownX - event.x
|
||||
val diffY = mTouchDownY - event.y
|
||||
|
||||
if (Math.abs(diffY) > 20 && Math.abs(diffY) > Math.abs(diffX)) {
|
||||
var percent = ((diffY / ViewPagerActivity.screenHeight) * 100).toInt() * 3
|
||||
percent = Math.min(100, Math.max(-100, percent))
|
||||
|
||||
if ((percent == 100 && event.y > mLastTouchY) || (percent == -100 && event.y < mLastTouchY)) {
|
||||
mTouchDownY = event.y
|
||||
mTouchDownBrightness = mTempBrightness
|
||||
}
|
||||
|
||||
brightnessPercentChanged(percent)
|
||||
}
|
||||
mLastTouchY = event.y
|
||||
}
|
||||
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
|
||||
val diffX = Math.abs(event.x - mTouchDownX)
|
||||
val diffY = Math.abs(event.y - mTouchDownY)
|
||||
if (System.currentTimeMillis() - mTouchDownTime < CLICK_MAX_DURATION && diffX < 20 && diffY < 20) {
|
||||
onClickOnSlider?.invoke()
|
||||
}
|
||||
mTouchDownBrightness = mTempBrightness
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun getCurrentVolume() = activity.audioManager.getStreamVolume(AudioManager.STREAM_MUSIC)
|
||||
|
||||
private fun getCurrentBrightness() = Settings.System.getInt(activity.contentResolver, Settings.System.SCREEN_BRIGHTNESS)
|
||||
|
||||
private fun volumePercentChanged(percent: Int) {
|
||||
val stream = AudioManager.STREAM_MUSIC
|
||||
val maxVolume = activity.audioManager.getStreamMaxVolume(stream)
|
||||
val percentPerPoint = 100 / maxVolume
|
||||
val addPoints = percent / percentPerPoint
|
||||
val newVolume = Math.min(maxVolume, Math.max(0, mTouchDownVolume + addPoints))
|
||||
activity.audioManager.setStreamVolume(stream, newVolume, 0)
|
||||
|
||||
val absolutePercent = ((newVolume / maxVolume.toFloat()) * 100).toInt()
|
||||
slideInfoView.apply {
|
||||
text = "$mSlideInfoText$absolutePercent%"
|
||||
alpha = 1f
|
||||
}
|
||||
|
||||
mSlideInfoFadeHandler.removeCallbacksAndMessages(null)
|
||||
mSlideInfoFadeHandler.postDelayed({
|
||||
slideInfoView.animate().alpha(0f)
|
||||
}, SLIDE_INFO_FADE_DELAY)
|
||||
}
|
||||
|
||||
private fun brightnessPercentChanged(percent: Int) {
|
||||
val maxBrightness = 255f
|
||||
var newBrightness = (mTouchDownBrightness + 2.55 * percent).toFloat()
|
||||
newBrightness = Math.min(maxBrightness, Math.max(0f, newBrightness))
|
||||
mTempBrightness = newBrightness.toInt()
|
||||
|
||||
val absolutePercent = ((newBrightness / maxBrightness) * 100).toInt()
|
||||
slideInfoView.apply {
|
||||
text = "$mSlideInfoText$absolutePercent%"
|
||||
alpha = 1f
|
||||
}
|
||||
|
||||
val attributes = activity.window.attributes
|
||||
attributes.screenBrightness = absolutePercent / 100f
|
||||
activity.window.attributes = attributes
|
||||
|
||||
mSlideInfoFadeHandler.removeCallbacksAndMessages(null)
|
||||
mSlideInfoFadeHandler.postDelayed({
|
||||
slideInfoView.animate().alpha(0f)
|
||||
}, SLIDE_INFO_FADE_DELAY)
|
||||
}
|
||||
}
|
|
@ -538,6 +538,26 @@
|
|||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/settings_allow_photo_gestures_holder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/medium_margin"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:padding="@dimen/activity_margin">
|
||||
|
||||
<com.simplemobiletools.commons.views.MySwitchCompat
|
||||
android:id="@+id/settings_allow_photo_gestures"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@null"
|
||||
android:clickable="false"
|
||||
android:paddingLeft="@dimen/medium_margin"
|
||||
android:paddingStart="@dimen/medium_margin"
|
||||
android:text="@string/allow_photo_gestures"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/settings_screen_rotation_holder"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -31,6 +31,30 @@
|
|||
android:visibility="gone"
|
||||
tools:text="My image\nAnother line"/>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/photo_brightness_controller"
|
||||
android:layout_width="@dimen/media_side_slider_width"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/slide_info"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginBottom="120dp"
|
||||
android:alpha="0"
|
||||
android:background="@drawable/black_rounded_background"
|
||||
android:gravity="center"
|
||||
android:paddingBottom="@dimen/medium_margin"
|
||||
android:paddingLeft="@dimen/activity_margin"
|
||||
android:paddingRight="@dimen/activity_margin"
|
||||
android:paddingTop="@dimen/medium_margin"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/extra_big_text_size"/>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/instant_prev_item"
|
||||
android:layout_width="@dimen/instant_change_bar_width"
|
||||
|
|
|
@ -15,14 +15,14 @@
|
|||
|
||||
<RelativeLayout
|
||||
android:id="@+id/video_volume_controller"
|
||||
android:layout_width="@dimen/video_side_slider_width"
|
||||
android:layout_width="@dimen/media_side_slider_width"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"/>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/video_brightness_controller"
|
||||
android:layout_width="@dimen/video_side_slider_width"
|
||||
android:layout_width="@dimen/media_side_slider_width"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
<RelativeLayout
|
||||
|
|
|
@ -130,6 +130,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">قم بتمرير الصور المصغرة أفقيا</string>
|
||||
<string name="hide_system_ui_at_fullscreen">إخفاء واجهة النظام تلقائيا عند العرض في وضع ملء الشاشة</string>
|
||||
<string name="delete_empty_folders">احذف المجلدات الفارغة بعد حذف محتواها</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">السماح بالتحكم في صوت الفيديو والسطوع بالإيماءات العمودية</string>
|
||||
<string name="show_media_count">إظهار عدد لوسائط المجلد على طريقة العرض الرئيسية</string>
|
||||
<string name="replace_share_with_rotate">استبدال خيار المشاركة مع خيار تدوير في القائمة ملء الشاشة</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Desplaçar miniatures horizontalment</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Ocultar automàticament la interficie de usuari del sistema a pantalla complerta</string>
|
||||
<string name="delete_empty_folders">Eliminar carpetes buides després d\'esborrar el seu contingut</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Permet controlar el volum i la brillantor del vídeo amb gestos verticals</string>
|
||||
<string name="show_media_count">Mostrar el número de mitjans de les carpetes a la vista principal</string>
|
||||
<string name="replace_share_with_rotate">Reemplaçar Compartir per Girar al menú de pantalla complerta</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Scroll thumbnails horizontally</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Automatically hide system UI at fullscreen media</string>
|
||||
<string name="delete_empty_folders">Delete empty folders after deleting their content</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Allow controlling video volume and brightness with vertical gestures</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Replace Share with Rotate at fullscreen menu</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Kacheln horizontal scrollen</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Systemleiste im Vollbild ausblenden</string>
|
||||
<string name="delete_empty_folders">Nach Löschen leere Ordner löschen</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Gesten für Videolautstärke/Helligkeit zulassen</string>
|
||||
<string name="show_media_count">Medienanzahl bei Ordnern anzeigen</string>
|
||||
<string name="replace_share_with_rotate">Teilen/Drehen im Vollbild-Menü vertauschen</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Desplazar miniaturas horizontalmente</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Ocultar automáticamente la interfaz de usuario del sistema en medios de pantalla completa</string>
|
||||
<string name="delete_empty_folders">Eliminar carpetas vacias despues de borrar su contenido</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Permite controlar el volumen y el brillo del video con gestos verticales</string>
|
||||
<string name="show_media_count">Mostrar el conteo de medios de las carpetas en la vista principal</string>
|
||||
<string name="replace_share_with_rotate">Reemplazar Compartir con Girar en el menú de pantalla completa</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Vieritä pienoiskuvia vaakasuorassa</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Piilota järjestelmän UI automaattisesti koko näytön mediassa</string>
|
||||
<string name="delete_empty_folders">Poista tyhjät kansiot kansion tyhjennyksen jälkeen</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Salli videon äänenvoimakkuuden ja kirkkauden säätö pystysuorilla eleillä</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Korvaa jakaminen kääntämisellä koko näytön tilassa</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Défilement des miniatures horizontalement</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Masquer automatiquement l\'interface utilisateur si média plein écran</string>
|
||||
<string name="delete_empty_folders">Supprimer les dossiers vides après avoir supprimé leur contenu</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Permettre le contrôle du volume vidéo et de la luminosité avec des gestes verticaux</string>
|
||||
<string name="show_media_count">Afficher le nombre de fichiers dans les dossiers sur l\'écran principal</string>
|
||||
<string name="replace_share_with_rotate">Remplacer Partager par Pivoter si menu en plein écran</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Desplazar iconas horizontalmente</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Agochar controis do sistema cando visualice a pantalla completa</string>
|
||||
<string name="delete_empty_folders">Borrar cartafoles baldeiros cando elmine o seu contido</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Permitir controlar o volume do vídeo e o brillo con xestos verticáis</string>
|
||||
<string name="show_media_count">Mostrar a conta de medios do cartafol na vista principal</string>
|
||||
<string name="replace_share_with_rotate">Substituír Compartir con Rotar no menú de pantalla completa</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Listaj sličice horizontalno</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Automatski sakrij UI sustava pri pregledu datoteka</string>
|
||||
<string name="delete_empty_folders">Izbriži prazne direktorije nakon brisanja njihovog sadržaja</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Omogući kontrolu glasnoće videa i svjetline pomoću vertikalnih gesti</string>
|
||||
<string name="show_media_count">Prikaži broj datoteka u direktoriju na glavnom zaslonu</string>
|
||||
<string name="replace_share_with_rotate">Zamjeni Dijeli s Rotiraj pri pregledu datoteka</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Scroll thumbnails horizontally</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Automatically hide system UI at fullscreen media</string>
|
||||
<string name="delete_empty_folders">Delete empty folders after deleting their content</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Allow controlling video volume and brightness with vertical gestures</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Replace Share with Rotate at fullscreen menu</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Scorri le miniature orizzontalmente</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Nascondi UI di sistema con media a schermo intero</string>
|
||||
<string name="delete_empty_folders">Elimina cartelle vuote dopo averne eliminato il contenuto</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Gestisci il volume e la luminosità dei video con gesti verticali</string>
|
||||
<string name="show_media_count">Mostra numero elementi nella cartella</string>
|
||||
<string name="replace_share_with_rotate">Sostituisci Condividi con Ruota a schermo intero</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">サムネイル画面を横方向にスクロール</string>
|
||||
<string name="hide_system_ui_at_fullscreen">フルスクリーン時にシステムUIを非表示にする</string>
|
||||
<string name="delete_empty_folders">メディアの削除後にフォルダーが空になった場合、そのフォルダーを削除する</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">ビデオ再生中に、音量と明るさを縦方向のジェスチャーで変更する</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">フルスクリーンメニューの「共有」を「回転」に置き換える</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">섬네일 수평스크롤</string>
|
||||
<string name="hide_system_ui_at_fullscreen">전체화면 모드에서 시스템 UI 숨김</string>
|
||||
<string name="delete_empty_folders">콘텐츠 삭제 후 빈폴더 삭제</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">수직 제스처로 비디오 볼륨 및 밝기 제어</string>
|
||||
<string name="show_media_count">폴더에 포함된 미디어파일 수 표시</string>
|
||||
<string name="replace_share_with_rotate">전체화면 메뉴의 공유 아이콘을 회전 아이콘으로 변경</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Horisontal rulling av minibilder</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Skjul automatisk systemlinjer ved mediavisning</string>
|
||||
<string name="delete_empty_folders">Slett tomme mapper etter sletting av deres innhold</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Tillat å styre videovolum og lysstyrke med vertikale bevegelser</string>
|
||||
<string name="show_media_count">Vis mediaantallet i mapper på hovedvisningen</string>
|
||||
<string name="replace_share_with_rotate">Erstatt Del med Roter i meny ved mediavisning</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Horizontaal scrollen</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Statusbalk automatisch verbergen in volledig scherm</string>
|
||||
<string name="delete_empty_folders">Lege mappen verwijderen na leegmaken</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Volume en helderheid aanpassen met verticale gebaren</string>
|
||||
<string name="show_media_count">Aantallen in mappen tonen</string>
|
||||
<string name="replace_share_with_rotate">Menu-item Draaien vastzetten in volledig scherm (in plaats van Delen)</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Przewijaj miniatury poziomo</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Ukrywaj interfejs przy pełnoekranowym podglądzie</string>
|
||||
<string name="delete_empty_folders">Usuwaj puste foldery po usunięciu ich zawartości</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Zezwalaj na kontrolę jasności i głośności filmów pionowymi gestami</string>
|
||||
<string name="show_media_count">Pokazuj liczbę elementów w folderach w głównym widoku</string>
|
||||
<string name="replace_share_with_rotate">Zamień funkcję udostępniania na obracanie w menu pełnoekranowym</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Rolar miniaturas horizontalmente</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Esconder interface do sistema automaticamente quando em tela cheia</string>
|
||||
<string name="delete_empty_folders">Apagar pastas vazias após deleter seu conteúdo</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Permitir controle do volume e brilho com gestos na vertical</string>
|
||||
<string name="show_media_count">Mostrar quantidade de arquivos das pastas</string>
|
||||
<string name="replace_share_with_rotate">Substituir botão "Compartilhar" por "Rotação de tela" quando em tela cheia</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Deslocação horizontal de miniaturas</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Ocultar interface do sistema se em ecrã completo</string>
|
||||
<string name="delete_empty_folders">Apagar as pastas vazias depois de remover o seu conteúdo</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Permitir controlo do volume e brilho dos vídeos através de gestos verticais</string>
|
||||
<string name="show_media_count">Mostrar número de ficheiros na vista principal</string>
|
||||
<string name="replace_share_with_rotate">Substituir a opção Partilhar pela opção Rodar se em ecrã completo</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Прокрутка эскизов по горизонтали</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Автоматически скрывать системный интерфейс в полноэкранном режиме</string>
|
||||
<string name="delete_empty_folders">Удалять пустые папки после удаления их содержимого</string>
|
||||
<string name="allow_photo_gestures">Управлять яркостью фото с помощью вертикальных жестов</string>
|
||||
<string name="allow_video_gestures">Управлять громкостью и яркостью видео с помощью вертикальных жестов</string>
|
||||
<string name="show_media_count">Показывать количество файлов в папках</string>
|
||||
<string name="replace_share_with_rotate">Заменить \"Поделиться\" на \"Повернуть\" в меню полноэкранного режима</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Prehliadať miniatúry vodorovne</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Automaticky skrývať systémové lišty pri celoobrazovkových médiách</string>
|
||||
<string name="delete_empty_folders">Odstrániť prázdne priečinky po vymazaní ich obsahu</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Povoliť ovládanie hlasitosti a jasu videí vertikálnymi ťahmi</string>
|
||||
<string name="show_media_count">Zobraziť počet médií v priečinku na hlavnej obrazovke</string>
|
||||
<string name="replace_share_with_rotate">Nahradiť Zdieľanie s Otočením v celoobrazovkovom menu</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Rulla horisontellt genom miniatyrer</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Dölj systemanvändargränssnittet automatiskt när media visas i helskärmsläge</string>
|
||||
<string name="delete_empty_folders">Ta bort tomma mappar när deras innehåll tas bort</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Tillåt styrning av videovolym och videoljusstyrka med vertikala gester</string>
|
||||
<string name="show_media_count">Visa antalet mediefiler i varje mapp i huvudvyn</string>
|
||||
<string name="replace_share_with_rotate">Ersätt Dela med Rotera i helskärmsmenyn</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Scroll thumbnails horizontally</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Automatically hide system UI at fullscreen media</string>
|
||||
<string name="delete_empty_folders">Delete empty folders after deleting their content</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Allow controlling video volume and brightness with vertical gestures</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Replace Share with Rotate at fullscreen menu</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">水平滚动缩略图</string>
|
||||
<string name="hide_system_ui_at_fullscreen">全屏时自动隐藏状态栏</string>
|
||||
<string name="delete_empty_folders">删除没有内容的空文件夹</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">使用纵向滑动手势控制视频音量和亮度</string>
|
||||
<string name="show_media_count">在主界面显示文件夹媒体计数</string>
|
||||
<string name="replace_share_with_rotate">替换全屏时菜单栏的“分享”为“旋转”</string>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">橫向滑動縮圖</string>
|
||||
<string name="hide_system_ui_at_fullscreen">全螢幕時自動隱藏系統介面</string>
|
||||
<string name="delete_empty_folders">刪除內容後刪除空白資料夾</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">允許用上下手勢來控制影片的音量和亮度</string>
|
||||
<string name="show_media_count">主畫面顯示資料夾內媒體檔案數量</string>
|
||||
<string name="replace_share_with_rotate">將全螢幕選單的分享取代為旋轉</string>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<dimen name="play_outline_size_big">150dp</dimen>
|
||||
<dimen name="timer_padding">24dp</dimen>
|
||||
<dimen name="tmb_shadow_height">50dp</dimen>
|
||||
<dimen name="video_side_slider_width">150dp</dimen>
|
||||
<dimen name="media_side_slider_width">150dp</dimen>
|
||||
<dimen name="instant_change_bar_width">60dp</dimen>
|
||||
<dimen name="list_view_folder_thumbnail_size">72dp</dimen>
|
||||
</resources>
|
||||
|
|
|
@ -126,6 +126,7 @@
|
|||
<string name="scroll_thumbnails_horizontally">Scroll thumbnails horizontally</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Automatically hide system UI at fullscreen media</string>
|
||||
<string name="delete_empty_folders">Delete empty folders after deleting their content</string>
|
||||
<string name="allow_photo_gestures">Allow controlling photo brightness with vertical gestures</string>
|
||||
<string name="allow_video_gestures">Allow controlling video volume and brightness with vertical gestures</string>
|
||||
<string name="show_media_count">Show folder media count on the main view</string>
|
||||
<string name="replace_share_with_rotate">Replace Share with Rotate at fullscreen menu</string>
|
||||
|
|
Loading…
Reference in a new issue