From 9614bd07c2857322e4e0de273abc04f2ff8793a7 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 3 Jul 2018 21:15:03 +0200 Subject: [PATCH] creating a PanoramaActivity for handling panoramas --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 9 ++ .../gallery/activities/PanoramaActivity.kt | 112 ++++++++++++++++++ .../gallery/activities/PhotoVideoActivity.kt | 6 +- .../gallery/activities/ViewPagerActivity.kt | 10 +- .../gallery/extensions/Activity.kt | 14 ++- .../gallery/fragments/PhotoFragment.kt | 14 ++- .../main/res/drawable-hdpi/ic_cardboard.png | Bin 0 -> 488 bytes app/src/main/res/drawable-hdpi/ic_explore.png | Bin 0 -> 450 bytes .../main/res/drawable-hdpi/ic_explore_off.png | Bin 0 -> 531 bytes .../main/res/drawable-xhdpi/ic_cardboard.png | Bin 0 -> 585 bytes .../main/res/drawable-xhdpi/ic_explore.png | Bin 0 -> 569 bytes .../res/drawable-xhdpi/ic_explore_off.png | Bin 0 -> 670 bytes .../main/res/drawable-xxhdpi/ic_cardboard.png | Bin 0 -> 996 bytes .../main/res/drawable-xxhdpi/ic_explore.png | Bin 0 -> 845 bytes .../res/drawable-xxhdpi/ic_explore_off.png | Bin 0 -> 979 bytes .../res/drawable-xxxhdpi/ic_cardboard.png | Bin 0 -> 1123 bytes .../main/res/drawable-xxxhdpi/ic_explore.png | Bin 0 -> 1136 bytes .../res/drawable-xxxhdpi/ic_explore_off.png | Bin 0 -> 1256 bytes app/src/main/res/layout/activity_panorama.xml | 33 ++++++ app/src/main/res/values-v21/styles.xml | 7 ++ app/src/main/res/values/styles.xml | 5 + 22 files changed, 198 insertions(+), 13 deletions(-) create mode 100644 app/src/main/kotlin/com/simplemobiletools/gallery/activities/PanoramaActivity.kt create mode 100644 app/src/main/res/drawable-hdpi/ic_cardboard.png create mode 100644 app/src/main/res/drawable-hdpi/ic_explore.png create mode 100644 app/src/main/res/drawable-hdpi/ic_explore_off.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_cardboard.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_explore.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_explore_off.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_cardboard.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_explore.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_explore_off.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_cardboard.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_explore.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_explore_off.png create mode 100644 app/src/main/res/layout/activity_panorama.xml create mode 100644 app/src/main/res/values-v21/styles.xml diff --git a/app/build.gradle b/app/build.gradle index e13c14951..bb27dc37c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -55,6 +55,7 @@ dependencies { implementation 'com.github.chrisbanes:PhotoView:2.1.3' implementation 'com.android.support.constraint:constraint-layout:1.1.2' implementation 'com.google.android.exoplayer:exoplayer-core:2.8.2' + implementation 'com.google.vr:sdk-panowidget:1.150.0' implementation 'org.apache.sanselan:sanselan:0.97-incubator' kapt "android.arch.persistence.room:compiler:1.1.1" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 601881fd6..e6b56c92d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,12 +1,16 @@ + + + + + isFullScreen = visibility and View.SYSTEM_UI_FLAG_FULLSCREEN != 0 + toggleButtonVisibility() + } + } + + private fun toggleButtonVisibility() { + cardboard.animate().alpha(if (isFullScreen) 0f else 1f) + cardboard.isClickable = !isFullScreen + + explore.animate().alpha(if (isFullScreen) 0f else 1f) + explore.isClickable = !isFullScreen + } + + private fun handleClick() { + isFullScreen = !isFullScreen + toggleButtonVisibility() + if (isFullScreen) { + hideSystemUI(false) + } else { + showSystemUI(false) + } + } +} 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 17201aee8..10c636fea 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/PhotoVideoActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/PhotoVideoActivity.kt @@ -85,7 +85,7 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList } } - showSystemUI() + showSystemUI(true) val bundle = Bundle() val file = File(mUri.toString()) val type = when { @@ -201,9 +201,9 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList override fun fragmentClicked() { mIsFullScreen = !mIsFullScreen if (mIsFullScreen) { - hideSystemUI() + hideSystemUI(true) } else { - showSystemUI() + showSystemUI(true) } if (!bottom_actions.isGone()) { 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 014a40fda..87e029a27 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt @@ -207,7 +207,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View config.isThirdPartyIntent = true } - showSystemUI() + showSystemUI(true) val isShowingFavorites = intent.getBooleanExtra(SHOW_FAVORITES, false) val isShowingRecycleBin = intent.getBooleanExtra(SHOW_RECYCLE_BIN, false) @@ -379,7 +379,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View if (getMediaForSlideshow()) { view_pager.onGlobalLayout { if (!isActivityDestroyed()) { - hideSystemUI() + hideSystemUI(true) mSlideshowInterval = config.slideshowInterval mSlideshowMoveBackwards = config.slideshowMoveBackwards mIsSlideshowActive = true @@ -457,7 +457,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View private fun stopSlideshow() { if (mIsSlideshowActive) { mIsSlideshowActive = false - showSystemUI() + showSystemUI(true) mSlideshowHandler.removeCallbacksAndMessages(null) window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) } @@ -1072,10 +1072,10 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View private fun checkSystemUI() { if (mIsFullScreen) { - hideSystemUI() + hideSystemUI(true) } else { stopSlideshow() - showSystemUI() + showSystemUI(true) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt index 443440702..c912b0b53 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt @@ -78,15 +78,21 @@ fun SimpleActivity.launchAbout() { or LICENSE_SUBSAMPLING or LICENSE_PATTERN or LICENSE_REPRINT or LICENSE_GIF_DRAWABLE or LICENSE_PHOTOVIEW or LICENSE_EXOPLAYER, BuildConfig.VERSION_NAME, faqItems) } -fun AppCompatActivity.showSystemUI() { - supportActionBar?.show() +fun AppCompatActivity.showSystemUI(toggleActionBarVisibility: Boolean) { + if (toggleActionBarVisibility) { + supportActionBar?.show() + } + window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN } -fun AppCompatActivity.hideSystemUI() { - supportActionBar?.hide() +fun AppCompatActivity.hideSystemUI(toggleActionBarVisibility: Boolean) { + if (toggleActionBarVisibility) { + supportActionBar?.hide() + } + window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/fragments/PhotoFragment.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/fragments/PhotoFragment.kt index 975f4e436..13abaf0b5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/fragments/PhotoFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/fragments/PhotoFragment.kt @@ -1,5 +1,6 @@ package com.simplemobiletools.gallery.fragments +import android.content.Intent import android.content.res.Configuration import android.graphics.Bitmap import android.graphics.BitmapFactory @@ -26,12 +27,15 @@ import com.davemorrissey.labs.subscaleview.ImageSource import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.OTG_PATH +import com.simplemobiletools.commons.helpers.isLollipopPlus import com.simplemobiletools.gallery.R +import com.simplemobiletools.gallery.activities.PanoramaActivity import com.simplemobiletools.gallery.activities.PhotoActivity 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.PATH import com.simplemobiletools.gallery.helpers.ROTATE_BY_ASPECT_RATIO import com.simplemobiletools.gallery.models.Medium import it.sephiroth.android.library.exif2.ExifInterface @@ -65,6 +69,7 @@ class PhotoFragment : ViewPagerFragment() { photo_view.setOnClickListener { photoClicked() } instant_prev_item.setOnClickListener { listener?.goToPrevItem() } instant_next_item.setOnClickListener { listener?.goToNextItem() } + panorama_outline.setOnClickListener { openPanorama() } instant_prev_item.parentView = container instant_next_item.parentView = container @@ -290,6 +295,13 @@ class PhotoFragment : ViewPagerFragment() { } } + private fun openPanorama() { + Intent(context, PanoramaActivity::class.java).apply { + putExtra(PATH, medium.path) + startActivity(this) + } + } + private fun addZoomableView() { if (!context!!.config.replaceZoomableImages && medium.isImage() && isFragmentVisible && view.subsampling_view.isGone()) { ViewPagerActivity.wasDecodedByGlide = false @@ -342,7 +354,7 @@ class PhotoFragment : ViewPagerFragment() { false } - view.panorama_outline.beVisibleIf(isPanorama) + view.panorama_outline.beVisibleIf(isPanorama && isLollipopPlus()) } private fun getImageOrientation(): Int { diff --git a/app/src/main/res/drawable-hdpi/ic_cardboard.png b/app/src/main/res/drawable-hdpi/ic_cardboard.png new file mode 100644 index 0000000000000000000000000000000000000000..0df820802f7e94be6cb9a02c76473d30b2ed15e2 GIT binary patch literal 488 zcmVP)~7+Ui!fi6+_~q@Npfc<5Q#)0k#AUjAt?bi zfyF=ea0aZK*?ZB@Ja8Vy{s;jJW_AHE5ey__FoVyT7HuMDC0G%3|j%%Li z_R6mqdIna388b_P3^=TyI|MS<%m8a%s~VCr_0o~FQIeZVdML@yd61Nr=r+7&ku1*{ z_J*E;W-(}H*FbB4?!NSZ5&FL}-3^ywi< zYD-%2qXkLxk`99LOCMjB)C%GUzWXC7@tk&_IkGy2FzPDX zFNq%k?VlD64ZTxuDc{olUHOKYy#mKI>d5B?f@2@J1h%R6gC=0d%=$gR7BEeN8U2YkX<5|cy#0000)z^JLsdn-bZ) zr;&e5Fv>p~c}KR=VK=4xA;=%f*sWy9rHd$CLdcTErKY(JmL6glVRV zy;{aermeVp zZbF^`@XWmLp&zdi*%-#FpFLJaPtAJ;e#3E1yCH+4rfEkdw$qB=57}tIHO3KnkVlXP z*?5fWr5x;}h*liI!=H_9nv+__eyV6EOqOhHp$(RO)*_B`n*qYLu|+PbSu)23^XD9| z86#S?yx2oG7_}1D_`(d~+-<}~F$U$-l1#CJai28qD;)1h>cd7JM=o;dAW8?h$&c(Z seiP(3W$aQqWG!DJ#uhITS=x-|0Sw;l3ca5lNB{r;07*qoM6N<$f(*FN9smFU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_explore_off.png b/app/src/main/res/drawable-hdpi/ic_explore_off.png new file mode 100644 index 0000000000000000000000000000000000000000..59363f9ab3acd7ca4f1dd89b794ae4afd9752ed3 GIT binary patch literal 531 zcmV+u0_^>XP)~d)clEp;<$MfOQrnfMwEN#5&RH> z3N{u&tZX%?1RKFdt;BLgNur%rLTn^4EW5{IN0}Yw@5@9tEMI`+n0b(+4vM;peJebPayj#cbMMcVLV$W z9hkOl(wJ!Ae{k@FPsX)jbcnB;=T9(uU7J>BuopoSQ zQcuz{&`q=*pf$$!s>@j`sFUqy6}4%e+Ri<$ZLd|-u7(=ewcRPHy=Z$_WB8%%3ne;p zNv~Q4nrxxIq@ALqq|d;&8aiJkeJRoT0rcw*b>vT>CI(h)&lM$;ZE?Pa&O+4|0#@n{ z)x^LoaI2uHfV(yIW`H|I4{_3Cw!vHzgH)YDw*A2Ne5$5v`$=Za$o4(k=WL&~ea-e> zX3b;U-IUIJqCKkUAAAa>*|+_{_D9=;oc!|~?VCC428l*L(X2x&2CBH6qkY=;_ZGB+ zkI}kpNqV0RO8Q0EH+Ct9Vc=G`P)B~AE zf#o6V=|fq4J1Q`bJ9xRnTq-D|$jLNf2@=aRawb$pAp@<(5yGuh1$u=JBR3StmVEX$}Wu@@``h2(_=MDdoX6jKVS zW5Op3<&L7n5!QVMkXsg3@ufJ5$qmy9=OR7GqE9GB0v5}3Igy#y1Uo`|*)SWsS7eqQ zt??JnI%>;-d>A;jk{zQ1uDrBdF#8dmoCy{jJl*T94<7LNN z+}$CQEDXcMWP)|n4sUN|$5q_*))y#4Sy|YRx2s`4)0bqGgEQb9cF2xVxEUr_l;$XY zM#_#hI2q)V0}WVD0{&XNh20bEX3B;R93|LOGRui+;GOGar6*SjXS&=_j5xluLKgBe zfJcNCM^U+BfivJJ!8G0z#X`TzWnf{qL=Bb`M>Gb7!qt|6?7<|ue)7jgzQra5AqOYF zy*m1$@VA%WUs~V4eSrM>2^D?>-VHkfqtDoN^rfu+`y(U+(9^86I*fn100000NkvXX Hu0mjfPAUlS literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_explore_off.png b/app/src/main/res/drawable-xhdpi/ic_explore_off.png new file mode 100644 index 0000000000000000000000000000000000000000..a2cb5e92b80a89ff0bebe0e3a644ed4357f7044a GIT binary patch literal 670 zcmV;P0%84$P)kM3Drl&xc_Fd;zDAA&?5ui!I)@{r|0w{ zo;-3kp1zYr9~g>`nz&61q6vv4{KVT}{b%|JtclZ9BckxaaC|)`qHe@gDG3#E_<*Xo zx?@lLnQ07kL8ptl<7WJuC^U%73v^bfyI#X)kWkP7y>sfWudwT^d>Gf!d#MIom>i-% zj&{NWl`;9M27X{t+3Oz}AS4c9@=Fc8LGQZz6J;!p5%QS+n7mR07tm`U+&mL~EPp>- zR0FHfc|l|$F$G66OJc1W=oZKiBNHy_sdwg~lNuH~3<{pQF-9Y2YJx(V|!zJ@C^ zUR5rDHE~DiFc@z?Ng^bo)0}%qN@5BUee{7Oe8Ug2?_XsW4#dMWUew>*%BW~EX-(#qYE3bQxnC6e=NqrlCU8PN5VUikdq-y zG!8Toodw~QkSNas0`-jTID(Og&S1V_^N4{&Ap%P^2|Lm;f$Nyuq&G3;{5&5=D-k@T zrXdS>h?|S!?4uo}grp?$iSQs3e+Kpet*lr8jDukX051Qe*;K0MTL1t607*qoM6N<$ Eg6Y>LqyPW_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_cardboard.png b/app/src/main/res/drawable-xxhdpi/ic_cardboard.png new file mode 100644 index 0000000000000000000000000000000000000000..71c05230d2d39b95650cc27359cf1912205b9821 GIT binary patch literal 996 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_explore.png b/app/src/main/res/drawable-xxxhdpi/ic_explore.png new file mode 100644 index 0000000000000000000000000000000000000000..e127a202bad73a7b66979fbcbc473d059d6d22d4 GIT binary patch literal 1136 zcmV-$1dscPP)>qe5vWHOmdIBd)b z+`uz@LtFYVh6T)FEPZLqH$1})oWO>%BBC~D@H#_rF@!fbjXJWTU|U{fCR)>Zne8N9 zRN-`5QI1xeK@~{@4Y-G~gfNt}tlJFhXB|MtYo}{#=p@hW-3?WGa*g(Re1;a?%FxCk7@bn`MeQ6rz z)$L4LItO^2d5$zaC*|QFl9S_GZp3tm_@go7NydEMW>XQq!8DG>;){1l!VI2d4fzL~ zkR#ta;)nf+Z#?%|#MG5DsATN%Ns7Bd zfBi=h%U>K`u!J{@;s#S$G&r9aa(uz|QV{o0+IgZuUqYM9YiuM%P=m>~U?J|(Y{=o`Vq+`E zVmj7XqAKIiTPQZnMQ@xL**F^0QN|LN;bX4YFaf<=#Xxfw8jnzOBR~(v#{{wQ*zh#! zSc{0y8*@*=&)^uJ(T9q(WM0P{0N^|71PYAZ!vDzT(xiA>GUsp|`-_2t@%5wF@C-Vy zh#J44rHB$&p|OzlJldK4T`4vkg2tz!#wYkYSZrv7#!jNd)-1$dZLy;(u6`F4cHrZ( z4!^5dXkX()RBb)KQm$vhR;zS(?x1iA-LMN*tx}8GxH#3Rjq_555XKy8i5uS12k3m% z<95ao&RgP&eXzS+N?;8hWjbN)t*TyE1ZV@B@*499t#8-{jyt6wcHs+h#Bjd0iD@Lo z%_?r<~3n<1l?G!j`U1J4or3frr4fBeLth$67_6~Uce_lb9(u4MEu=8wBKz2HYEe7*=Fd;Y?anj@Fz>6-gJ{@iH^Kh9Yh)D+=mx2CtP)a3M-+1cGer79{YC@3f> z2#KA!ow~H4Ep6$+T$VD8VRWND?{Y8avYoPv8>l946mdM&=t%{(vDD>a)=)NZ1qtv= zU|(Kk622Btojnv57f}fSyd?*$!tIPBj*eVRslwoFDgfLPSclh{PY9EEoOKizr?LXT zErElWMM%@RO7ZX$$zD_IOQgx85(6dh$WcT3<{mXaNdI4gX@(>YB@@C-$95*m{1 z;hZKweO6Xflvas^9;_QW;og)9%gC0IY#k@z2a?^dB%GYZgz;>us3@rt3By<~-xGRK z9w*_;DvYYDx% zm}310ZP%E48YB~azSm#Wdf%Lo=q79xlEuPuKLQxYE%;4WAeoQ_*g?0 zjwGJ@V{8O%$I8Nekeh@I19Y63h#HW)1U|&io3hXpa+Q!YK-(J1LVv=zTPEJXS3g;p zMi>dMRT5)>wvCpB#Y8cNCM3H>8Sps%X2?P`w6A-p5}q@@ zGWl5{3p4Tec*YY+HKo8{qF5jcWAL?@b&M-dU5WxNB*$mtZS)QM%0sb4g|=Tt>ot$Fnh% z%;vC)(qKEPu@swMLT~xtYBGCLDX}kKQHjY;h0 z-YPG$$8gVtYyXq*uzXR*P?rIkmAQqn7-A+&W;OZaP*VF?e`0MOV@`4qT%E8 z12miS28%GnPPhg5P*Jfy)A_&p61(ytD+s|(xQ_J{9VhaC4^baOtc1{b4_j4EU}bvc zd%}7Q%lCv$8K3V7TQic}dP!liENv09PM9$W~P|ZjPhcYgu3vsmP{G|1Okq{hv zQGem|mUWfHF(JVX$|n@@8UILdrSc8Me3l0f-$?itNN}<86(xL?{^1uC6#N2HU233$ SI>*ca0000 + + + + + + + + + diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml new file mode 100644 index 000000000..7f1ac50b0 --- /dev/null +++ b/app/src/main/res/values-v21/styles.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 0be50415b..9bb53721a 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -2,4 +2,9 @@ + +