From 3186d27d124608d9a0bb7fc62658d0a9e5c3112c Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 15 Jul 2018 21:17:13 +0200 Subject: [PATCH] add "Set as" as an available bottom action at the fullscreen view --- .../gallery/activities/PhotoVideoActivity.kt | 29 +++++++++++------- .../gallery/activities/ViewPagerActivity.kt | 6 ++++ .../dialogs/ManageBottomActionsDialog.kt | 3 ++ .../gallery/helpers/Constants.kt | 1 + app/src/main/res/drawable-hdpi/ic_set_as.png | Bin 0 -> 301 bytes app/src/main/res/drawable-xhdpi/ic_set_as.png | Bin 0 -> 413 bytes .../main/res/drawable-xxhdpi/ic_set_as.png | Bin 0 -> 509 bytes .../main/res/drawable-xxxhdpi/ic_set_as.png | Bin 0 -> 670 bytes app/src/main/res/layout/bottom_actions.xml | 13 +++++++- .../layout/dialog_manage_bottom_actions.xml | 8 +++++ app/src/main/res/menu/menu_viewpager.xml | 9 +++--- app/src/main/res/menu/photo_video_menu.xml | 3 +- 12 files changed, 55 insertions(+), 17 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/ic_set_as.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_set_as.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_set_as.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_set_as.png diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/PhotoVideoActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/PhotoVideoActivity.kt index 10c636fea..a3657295d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/PhotoVideoActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/PhotoVideoActivity.kt @@ -48,8 +48,6 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList finish() } } - - initBottomActions() } override fun onResume() { @@ -88,14 +86,15 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList showSystemUI(true) val bundle = Bundle() val file = File(mUri.toString()) + val filename = getFilenameFromUri(mUri!!) val type = when { - file.isImageFast() -> TYPE_IMAGES - file.isVideoFast() -> TYPE_VIDEOS - file.isGif() -> TYPE_GIFS + filename.isImageFast() -> TYPE_IMAGES + filename.isVideoFast() -> TYPE_VIDEOS + filename.isGif() -> TYPE_GIFS else -> TYPE_RAWS } - mMedium = Medium(null, getFilenameFromUri(mUri!!), mUri.toString(), mUri!!.path.getParentPath(), 0, 0, file.length(), type, false, 0L) + mMedium = Medium(null, filename, mUri.toString(), mUri!!.path.getParentPath(), 0, 0, file.length(), type, false, 0L) supportActionBar?.title = mMedium!!.name bundle.putSerializable(MEDIUM, mMedium) @@ -114,6 +113,8 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList val isFullscreen = visibility and View.SYSTEM_UI_FLAG_FULLSCREEN != 0 mFragment?.fullscreenToggled(isFullscreen) } + + initBottomActions() } override fun onConfigurationChanged(newConfig: Configuration?) { @@ -132,12 +133,13 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.photo_video_menu, menu) + val visibleBottomActions = if (config.bottomActions) config.visibleBottomActions else 0 menu.apply { - findItem(R.id.menu_set_as).isVisible = mMedium?.isImage() == true - findItem(R.id.menu_edit).isVisible = mMedium?.isImage() == true && mUri?.scheme == "file" && !config.bottomActions - findItem(R.id.menu_properties).isVisible = mUri?.scheme == "file" - findItem(R.id.menu_share).isVisible = !config.bottomActions + findItem(R.id.menu_set_as).isVisible = mMedium?.isImage() == true && visibleBottomActions and BOTTOM_ACTION_SET_AS == 0 + findItem(R.id.menu_edit).isVisible = mMedium?.isImage() == true && mUri?.scheme == "file" && visibleBottomActions and BOTTOM_ACTION_EDIT == 0 + findItem(R.id.menu_properties).isVisible = mUri?.scheme == "file" && visibleBottomActions and BOTTOM_ACTION_PROPERTIES == 0 + findItem(R.id.menu_share).isVisible = visibleBottomActions and BOTTOM_ACTION_SHARE == 0 } return true @@ -183,7 +185,7 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList } val visibleBottomActions = if (config.bottomActions) config.visibleBottomActions else 0 - bottom_edit.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_EDIT != 0) + bottom_edit.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_EDIT != 0 && mMedium?.isImage() == true) bottom_edit.setOnClickListener { if (mUri != null && bottom_actions.alpha == 1f) { openEditor(mUri!!.toString()) @@ -196,6 +198,11 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList sharePath(mUri!!.toString()) } } + + bottom_set_as.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_SET_AS != 0 && mMedium?.isImage() == true) + bottom_set_as.setOnClickListener { + setAs(mUri!!.toString()) + } } override fun fragmentClicked() { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt index 084ddc475..5a88de033 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt @@ -296,6 +296,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View findItem(R.id.menu_edit).isVisible = visibleBottomActions and BOTTOM_ACTION_EDIT == 0 findItem(R.id.menu_rename).isVisible = visibleBottomActions and BOTTOM_ACTION_RENAME == 0 findItem(R.id.menu_rotate).isVisible = currentMedium.isImage() && visibleBottomActions and BOTTOM_ACTION_ROTATE == 0 + findItem(R.id.menu_set_as).isVisible = visibleBottomActions and BOTTOM_ACTION_SET_AS == 0 findItem(R.id.menu_save_as).isVisible = mRotationDegrees != 0 findItem(R.id.menu_hide).isVisible = !currentMedium.isHidden() && visibleBottomActions and BOTTOM_ACTION_TOGGLE_VISIBILITY == 0 findItem(R.id.menu_unhide).isVisible = currentMedium.isHidden() && visibleBottomActions and BOTTOM_ACTION_TOGGLE_VISIBILITY == 0 @@ -842,6 +843,11 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View bottom_rename.setOnClickListener { renameFile() } + + bottom_set_as.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_SET_AS != 0) + bottom_set_as.setOnClickListener { + setAs(getCurrentPath()) + } } private fun updateBottomActionIcons(medium: Medium?) { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/dialogs/ManageBottomActionsDialog.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/dialogs/ManageBottomActionsDialog.kt index a9ef79936..920c3c404 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/dialogs/ManageBottomActionsDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/dialogs/ManageBottomActionsDialog.kt @@ -25,6 +25,7 @@ class ManageBottomActionsDialog(val activity: BaseSimpleActivity, val callback: 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 manage_bottom_actions_rename.isChecked = actions and BOTTOM_ACTION_RENAME != 0 + manage_bottom_actions_set_as.isChecked = actions and BOTTOM_ACTION_SET_AS != 0 } AlertDialog.Builder(activity) @@ -60,6 +61,8 @@ class ManageBottomActionsDialog(val activity: BaseSimpleActivity, val callback: result += BOTTOM_ACTION_TOGGLE_VISIBILITY if (manage_bottom_actions_rename.isChecked) result += BOTTOM_ACTION_RENAME + if (manage_bottom_actions_set_as.isChecked) + result += BOTTOM_ACTION_SET_AS } activity.config.visibleBottomActions = result diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Constants.kt index a33adcec3..53e17f4f2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Constants.kt @@ -144,5 +144,6 @@ const val BOTTOM_ACTION_SLIDESHOW = 128 const val BOTTOM_ACTION_SHOW_ON_MAP = 256 const val BOTTOM_ACTION_TOGGLE_VISIBILITY = 512 const val BOTTOM_ACTION_RENAME = 1024 +const val BOTTOM_ACTION_SET_AS = 2048 const val DEFAULT_BOTTOM_ACTIONS = BOTTOM_ACTION_TOGGLE_FAVORITE or BOTTOM_ACTION_EDIT or BOTTOM_ACTION_SHARE or BOTTOM_ACTION_DELETE diff --git a/app/src/main/res/drawable-hdpi/ic_set_as.png b/app/src/main/res/drawable-hdpi/ic_set_as.png new file mode 100644 index 0000000000000000000000000000000000000000..d4de4c2b57dfa7cac7ff29f4ad74e43cddbf681e GIT binary patch literal 301 zcmV+|0n+}7P)pR%`-hRF_WBeA4j4;bA z)7XgrJ+q8skIa+tJ1Cb^oO`F~zo<`I{)>A3zk?g*JF!Tiq{=muj>V;<<}}m_;7XCp z0gi2HXat-n&(}^gGzrcWg>DSIXs8byDGIs7y&VlT;Mkc*2G%u{z%{x-qhl1^6LlI& z<^I1Y8`ghOU3~l(RnHMjr~jhr!ip;TFKW!_ zG{pmYk*0W{!pJmrgJv|v4W;I4%P)@NB{!`MHGk#F_ZyD0TmFS0tiBgk!AoSq6D&57K3RR!zv9V zJ3&(0y{=dP4?6%jk9B8EuulfrJJVu}4;Dj-pr$oo6ZmA=0%M)db~GRdK#Nrih!ic_yU>6#gb}0( zs;U7E_#sl!d*Dq2-uYeHz9U0eFB(wcZ<&ZaJZZosv=eLt;hkx~9%>sJkVI|9w0K0T z&bS6FfNvtN6C@O1kRoa|jfhe3O$>0N6U0r4S+3El5;rZT*yV~E0I%G#MS_w}NHH8i zjQS=jZiupPA{If!d=q6iM8!8T8bJ)ZAgY8{azVr+h#}v^y&IxNc<1*2NQ4tK&HNHa zX0C`jon`4US25l}Wa%{_fspqC(EtE)%3g>Go`F;PtgHG06Zz6r>lN2600000NkvXX Hu0mjfn(~|& literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_set_as.png b/app/src/main/res/drawable-xxhdpi/ic_set_as.png new file mode 100644 index 0000000000000000000000000000000000000000..60f34eb2015ec8be55cb74fa10c86b5fdfdc313b GIT binary patch literal 509 zcmV|z}Y7)DLfCk&++Be+6*y<<0xNES4xCH`HcRlq1Z5UP_@u||TC_DJhVYmKy% z6hV@@6S}1$)<~_bksgyHSW&n&E0E^vaLNPlAuQ4`{CYzg z4bTAiL5h=*F%G|KYk=1Cvroju_>ZP*fNsJcq^9B%z432v?3`o(exwLEa65KT4)~AM z#+Tz?+E_vPh_5zLav)2rpwz@)=cqW4Sz?VB{-lUFDC|U>$E)5Eb1q5ju^7Bb5piIn z2B;Z&_0xF_enP74E4(HME+gMLJ-NL|NWjBMk>rB$Bh+8Yv4Gt&s|I#TqFW zXRVPkF`rM?R$O^bpw&XriTWJJt2bPah@=%I>A_ac@__H%XEzh5Lpm~ZLV=`N;w3rK zVQZv}!IK=xksQg99LbToStDH*u|+y3VvE#C#1d(u=%qlKBtb_;_Tkk~Nr*`2LFz4f zDUdpgUJ9f(qLl*alLAL0(lDQgoTIk5l185a;qb$sq~JPT00000NkvXXu0mjfdy3>L literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_set_as.png b/app/src/main/res/drawable-xxxhdpi/ic_set_as.png new file mode 100644 index 0000000000000000000000000000000000000000..303e1780f9ac93893d1e92c46efbb36c649dd2ac GIT binary patch literal 670 zcmV;P0%84$P)m4M66A3Tzq&Y-z z8X>!fgqtMRo$!o2x)Z#pqC3Gw7UvOO;Yp8(hqOb>qg-SL;;)P3);6)@^KvMuwLMK_kArL0)R&o&tzy`s^-*Xd6 z4p0ETBNP_72NmQ1-T1yY6c%_3y2=3-g9U=U`7limuoWy2?9GQAa)4uCfne`n4435q z*WovWycSMF4glQccfBI-Kbj90R#VI4=j-4i*UZ=EHW;&!`20z4!SV!K5toLHVLg{{0{{=%$1FONN_~hS!UXvY z;s0j{9rY*laR#A}lL&@j2!>z?hF}PWU + + diff --git a/app/src/main/res/layout/dialog_manage_bottom_actions.xml b/app/src/main/res/layout/dialog_manage_bottom_actions.xml index 0e4bd1dcf..6e58322e4 100644 --- a/app/src/main/res/layout/dialog_manage_bottom_actions.xml +++ b/app/src/main/res/layout/dialog_manage_bottom_actions.xml @@ -102,5 +102,13 @@ android:paddingTop="@dimen/activity_margin" android:text="@string/rename"/> + + diff --git a/app/src/main/res/menu/menu_viewpager.xml b/app/src/main/res/menu/menu_viewpager.xml index 85cd15500..282910e8a 100644 --- a/app/src/main/res/menu/menu_viewpager.xml +++ b/app/src/main/res/menu/menu_viewpager.xml @@ -73,10 +73,6 @@ android:id="@+id/menu_move_to" android:title="@string/move_to" app:showAsAction="never"/> - + + app:showAsAction="ifRoom"/>