mirror of
				https://github.com/SimpleMobileTools/Simple-Gallery.git
				synced 2025-06-05 21:59:19 +02:00 
			
		
		
		
	change lock orientation into forcing different orientation types
This commit is contained in:
		| @@ -47,7 +47,7 @@ ext { | ||||
| } | ||||
|  | ||||
| dependencies { | ||||
|     implementation 'com.simplemobiletools:commons:4.3.13' | ||||
|     implementation 'com.simplemobiletools:commons:4.3.15' | ||||
|     implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.0' | ||||
|     implementation 'com.android.support:multidex:1.0.3' | ||||
|     implementation 'it.sephiroth.android.exif:library:1.0.1' | ||||
|   | ||||
| @@ -13,6 +13,7 @@ import android.graphics.BitmapFactory | ||||
| import android.graphics.Color | ||||
| import android.graphics.Matrix | ||||
| import android.graphics.drawable.ColorDrawable | ||||
| import android.graphics.drawable.Drawable | ||||
| import android.media.ExifInterface | ||||
| import android.net.Uri | ||||
| import android.os.Build | ||||
| @@ -299,8 +300,8 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View | ||||
|             findItem(R.id.menu_add_to_favorites).isVisible = !currentMedium.isFavorite && visibleBottomActions and BOTTOM_ACTION_TOGGLE_FAVORITE == 0 | ||||
|             findItem(R.id.menu_remove_from_favorites).isVisible = currentMedium.isFavorite && visibleBottomActions and BOTTOM_ACTION_TOGGLE_FAVORITE == 0 | ||||
|             findItem(R.id.menu_restore_file).isVisible = currentMedium.path.startsWith(filesDir.toString()) | ||||
|             findItem(R.id.menu_lock_orientation).isVisible = mRotationDegrees == 0 && visibleBottomActions and BOTTOM_ACTION_ROTATE == 0 | ||||
|             findItem(R.id.menu_lock_orientation).title = getString(if (mIsOrientationLocked) R.string.unlock_orientation else R.string.lock_orientation) | ||||
|             findItem(R.id.menu_change_orientation).isVisible = mRotationDegrees == 0 && visibleBottomActions and BOTTOM_ACTION_CHANGE_ORIENTATION == 0 | ||||
|             findItem(R.id.menu_change_orientation).icon = getChangeOrientationIcon() | ||||
|             findItem(R.id.menu_rotate).setShowAsAction( | ||||
|                     if (mRotationDegrees != 0) { | ||||
|                         MenuItem.SHOW_AS_ACTION_ALWAYS | ||||
| @@ -339,7 +340,9 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View | ||||
|             R.id.menu_add_to_favorites -> toggleFavorite() | ||||
|             R.id.menu_remove_from_favorites -> toggleFavorite() | ||||
|             R.id.menu_restore_file -> restoreFile() | ||||
|             R.id.menu_lock_orientation -> toggleLockOrientation() | ||||
|             R.id.menu_force_portrait -> toggleOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) | ||||
|             R.id.menu_force_landscape -> toggleOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) | ||||
|             R.id.menu_default_orientation -> toggleOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) | ||||
|             R.id.menu_save_as -> saveImageAs() | ||||
|             R.id.menu_settings -> launchSettings() | ||||
|             else -> return super.onOptionsItemSelected(item) | ||||
| @@ -544,16 +547,23 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View | ||||
|         supportInvalidateOptionsMenu() | ||||
|     } | ||||
|  | ||||
|     private fun toggleLockOrientation() { | ||||
|         mIsOrientationLocked = !mIsOrientationLocked | ||||
|         if (mIsOrientationLocked) { | ||||
|             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { | ||||
|                 requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LOCKED | ||||
|     private fun toggleOrientation(orientation: Int) { | ||||
|         requestedOrientation = orientation | ||||
|         mIsOrientationLocked = orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT || orientation == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE | ||||
|         invalidateOptionsMenu() | ||||
|     } | ||||
|  | ||||
|     private fun getChangeOrientationIcon(): Drawable { | ||||
|         val drawable = if (mIsOrientationLocked) { | ||||
|             if (requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) { | ||||
|                 R.drawable.ic_orientation_portrait | ||||
|             } else { | ||||
|                 R.drawable.ic_orientation_landscape | ||||
|             } | ||||
|         } else { | ||||
|             setupRotation() | ||||
|             R.drawable.ic_orientation_auto | ||||
|         } | ||||
|         invalidateOptionsMenu() | ||||
|         return resources.getDrawable(drawable) | ||||
|     } | ||||
|  | ||||
|     private fun saveImageAs() { | ||||
| @@ -809,7 +819,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         bottom_lock_orientation.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_LOCK_ORIENTATION != 0) | ||||
|         bottom_lock_orientation.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_CHANGE_ORIENTATION != 0) | ||||
|         bottom_lock_orientation.setOnClickListener { | ||||
|             if (bottom_actions.alpha == 1f) { | ||||
|  | ||||
|   | ||||
| @@ -20,7 +20,7 @@ class ManageBottomActionsDialog(val activity: BaseSimpleActivity, val callback: | ||||
|             manage_bottom_actions_delete.isChecked = actions and BOTTOM_ACTION_DELETE != 0 | ||||
|             manage_bottom_actions_rotate.isChecked = actions and BOTTOM_ACTION_ROTATE != 0 | ||||
|             manage_bottom_actions_properties.isChecked = actions and BOTTOM_ACTION_PROPERTIES != 0 | ||||
|             manage_bottom_actions_lock_orientation.isChecked = actions and BOTTOM_ACTION_LOCK_ORIENTATION != 0 | ||||
|             manage_bottom_actions_change_orientation.isChecked = actions and BOTTOM_ACTION_CHANGE_ORIENTATION != 0 | ||||
|             manage_bottom_actions_slideshow.isChecked = actions and BOTTOM_ACTION_PROPERTIES != 0 | ||||
|             manage_bottom_actions_show_on_map.isChecked = actions and BOTTOM_ACTION_SHOW_ON_MAP != 0 | ||||
|             manage_bottom_actions_toggle_visibility.isChecked = actions and BOTTOM_ACTION_TOGGLE_VISIBILITY != 0 | ||||
| @@ -50,8 +50,8 @@ class ManageBottomActionsDialog(val activity: BaseSimpleActivity, val callback: | ||||
|                 result += BOTTOM_ACTION_ROTATE | ||||
|             if (manage_bottom_actions_properties.isChecked) | ||||
|                 result += BOTTOM_ACTION_PROPERTIES | ||||
|             if (manage_bottom_actions_lock_orientation.isChecked) | ||||
|                 result += BOTTOM_ACTION_LOCK_ORIENTATION | ||||
|             if (manage_bottom_actions_change_orientation.isChecked) | ||||
|                 result += BOTTOM_ACTION_CHANGE_ORIENTATION | ||||
|             if (manage_bottom_actions_slideshow.isChecked) | ||||
|                 result += BOTTOM_ACTION_SLIDESHOW | ||||
|             if (manage_bottom_actions_show_on_map.isChecked) | ||||
|   | ||||
| @@ -138,7 +138,7 @@ const val BOTTOM_ACTION_SHARE = 4 | ||||
| const val BOTTOM_ACTION_DELETE = 8 | ||||
| const val BOTTOM_ACTION_ROTATE = 16 | ||||
| const val BOTTOM_ACTION_PROPERTIES = 32 | ||||
| const val BOTTOM_ACTION_LOCK_ORIENTATION = 64 | ||||
| const val BOTTOM_ACTION_CHANGE_ORIENTATION = 64 | ||||
| const val BOTTOM_ACTION_SLIDESHOW = 128 | ||||
| const val BOTTOM_ACTION_SHOW_ON_MAP = 256 | ||||
| const val BOTTOM_ACTION_TOGGLE_VISIBILITY = 512 | ||||
|   | ||||
| @@ -63,7 +63,7 @@ | ||||
|             android:text="@string/properties"/> | ||||
|  | ||||
|         <com.simplemobiletools.commons.views.MyAppCompatCheckbox | ||||
|             android:id="@+id/manage_bottom_actions_lock_orientation" | ||||
|             android:id="@+id/manage_bottom_actions_change_orientation" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:paddingBottom="@dimen/activity_margin" | ||||
|   | ||||
| @@ -49,9 +49,22 @@ | ||||
|         android:title="@string/restore_this_file" | ||||
|         app:showAsAction="never"/> | ||||
|     <item | ||||
|         android:id="@+id/menu_lock_orientation" | ||||
|         android:title="@string/lock_orientation" | ||||
|         app:showAsAction="never"/> | ||||
|         android:id="@+id/menu_change_orientation" | ||||
|         android:icon="@drawable/ic_orientation_auto" | ||||
|         android:title="@string/change_orientation" | ||||
|         app:showAsAction="ifRoom"> | ||||
|         <menu> | ||||
|             <item | ||||
|                 android:id="@+id/menu_force_portrait" | ||||
|                 android:title="@string/force_portrait"/> | ||||
|             <item | ||||
|                 android:id="@+id/menu_force_landscape" | ||||
|                 android:title="@string/force_landscape"/> | ||||
|             <item | ||||
|                 android:id="@+id/menu_default_orientation" | ||||
|                 android:title="@string/use_default_orientation"/> | ||||
|         </menu> | ||||
|     </item> | ||||
|     <item | ||||
|         android:id="@+id/menu_copy_to" | ||||
|         android:title="@string/copy_to" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user