Skip to content

Commit a1e5025

Browse files
Update dependencies (#36)
Update
1 parent ab5ede8 commit a1e5025

File tree

5 files changed

+97
-63
lines changed

5 files changed

+97
-63
lines changed

dependencies.gradle

+4-4
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ ext.versions = [
2323
kotlin : '1.2.71',
2424
libs : '2.1',
2525
// App Versions:
26-
versionCode: 149,
27-
versionName: '1.4.9',
26+
versionCode: 150,
27+
versionName: '1.5.0',
2828
// Dependencies
29-
frames : '2.5.2',
29+
frames : '2.5.3',
3030
bottomNav : '2.2.0',
3131
oneSignal : '3.10.1',
3232
kustom : '2846916',
@@ -49,4 +49,4 @@ ext.libraries = [
4949
oneSignal: 'com.onesignal:OneSignal:' + versions.oneSignal,
5050
// Kustom API
5151
kustom : 'com.jahirfiquitiva.KustomAPI:api:' + versions.kustom + '@aar'
52-
]
52+
]

library/src/main/kotlin/jahirfiquitiva/libs/kuper/ui/activities/KuperActivity.kt

+14-25
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ import jahirfiquitiva.libs.kext.extensions.primaryColor
4646
import jahirfiquitiva.libs.kext.extensions.setItemVisibility
4747
import jahirfiquitiva.libs.kext.extensions.string
4848
import jahirfiquitiva.libs.kext.extensions.tint
49-
import jahirfiquitiva.libs.kext.ui.fragments.adapters.FragmentsPagerAdapter
5049
import jahirfiquitiva.libs.kext.ui.widgets.CustomSearchView
5150
import jahirfiquitiva.libs.kuper.R
5251
import jahirfiquitiva.libs.kuper.helpers.extensions.inAssetsAndWithContent
@@ -71,6 +70,8 @@ abstract class KuperActivity : BaseFramesActivity<KuperKonfigs>() {
7170
private var searchView: CustomSearchView? = null
7271

7372
private val pager: PseudoViewPager? by bind(R.id.pager)
73+
private var pagerAdapter: KuperSectionsAdapter? = null
74+
7475
private var currentItemId = 0
7576
private var withSetup = true
7677

@@ -120,19 +121,12 @@ abstract class KuperActivity : BaseFramesActivity<KuperKonfigs>() {
120121
getCurrentFragment()?.onDestroy()
121122
} catch (e: Exception) {
122123
}
123-
(pager?.adapter as? FragmentsPagerAdapter)?.let {
124-
try {
125-
for (i in 0 until it.count) it.removeItemAt(i)
126-
} catch (e: Exception) {
127-
}
128-
}
129-
pager?.adapter = null
130-
val adapt = FragmentsPagerAdapter(supportFragmentManager)
131-
if (withSetup) adapt.addFragment(SetupFragment())
132-
adapt.addFragment(KuperFragment())
133-
adapt.addFragment(WallpapersFragment.create(getLicenseChecker() != null))
134-
pager?.adapter = adapt
135-
pager?.offscreenPageLimit = pager?.adapter?.count ?: 2
124+
pagerAdapter = KuperSectionsAdapter(
125+
supportFragmentManager,
126+
withSetup,
127+
string(R.string.json_url).hasContent(),
128+
getLicenseChecker() != null)
129+
pager?.adapter = pagerAdapter
136130
}
137131

138132
private fun setupBottomNavigation() {
@@ -233,8 +227,7 @@ abstract class KuperActivity : BaseFramesActivity<KuperKonfigs>() {
233227
invalidateOptionsMenu()
234228
true
235229
} else {
236-
val activeFragment =
237-
(pager?.adapter as? FragmentsPagerAdapter)?.get(pager?.currentItem ?: -1)
230+
val activeFragment = pagerAdapter?.get(pager?.currentItem ?: -1)
238231
(activeFragment as? SetupFragment)?.scrollToTop()
239232
(activeFragment as? KuperFragment)?.scrollToTop()
240233
(activeFragment as? WallpapersFragment)?.scrollToTop()
@@ -267,8 +260,7 @@ abstract class KuperActivity : BaseFramesActivity<KuperKonfigs>() {
267260
private fun doSearch(filter: String = "", closed: Boolean = false) {
268261
synchronized(lock) {
269262
postDelayed(200) {
270-
val activeFragment =
271-
(pager?.adapter as? FragmentsPagerAdapter)?.get(pager?.currentItem ?: -1)
263+
val activeFragment = pagerAdapter?.get(pager?.currentItem ?: -1)
272264
if (activeFragment is KuperFragment) {
273265
activeFragment.applyFilter(filter, closed)
274266
} else if (activeFragment is BaseFramesFragment<*, *>) {
@@ -280,9 +272,7 @@ abstract class KuperActivity : BaseFramesActivity<KuperKonfigs>() {
280272
}
281273

282274
private fun refreshContent() {
283-
val activeFragment =
284-
(pager?.adapter as? FragmentsPagerAdapter)?.get(pager?.currentItem ?: -1)
285-
(activeFragment as? WallpapersFragment)?.reloadData(1)
275+
(pagerAdapter?.get(pager?.currentItem ?: -1) as? WallpapersFragment)?.reloadData(1)
286276
}
287277

288278
fun installAssets() {
@@ -302,8 +292,7 @@ abstract class KuperActivity : BaseFramesActivity<KuperKonfigs>() {
302292
cancelable(false)
303293
}
304294
dialog?.setOnShowListener {
305-
CopyAssetsTask(
306-
WeakReference(this), s, {
295+
CopyAssetsTask(WeakReference(this), s) {
307296
if (it) count += 1
308297
destroyDialog()
309298
if (index == actualFolders.size - 1) {
@@ -314,12 +303,12 @@ abstract class KuperActivity : BaseFramesActivity<KuperKonfigs>() {
314303
Snackbar.LENGTH_LONG)
315304
if (count == actualFolders.size) {
316305
(getCurrentFragment() as? SetupFragment)?.loadDataFromViewModel() ?: {
317-
((pager?.adapter as? FragmentsPagerAdapter)?.get(
306+
(pagerAdapter?.get(
318307
currentItemId) as? SetupFragment)?.loadDataFromViewModel()
319308
}()
320309
}
321310
}
322-
}).execute()
311+
}.execute()
323312
}
324313
dialog?.show()
325314
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/*
2+
* Copyright (c) 2018. Jahir Fiquitiva
3+
*
4+
* Licensed under the CreativeCommons Attribution-ShareAlike
5+
* 4.0 International License. You may not use this file except in compliance
6+
* with the License. You may obtain a copy of the License at
7+
*
8+
* http://creativecommons.org/licenses/by-sa/4.0/legalcode
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package jahirfiquitiva.libs.kuper.ui.activities
17+
18+
import android.support.v4.app.Fragment
19+
import android.support.v4.app.FragmentManager
20+
import jahirfiquitiva.libs.kext.ui.fragments.adapters.DynamicFragmentsPagerAdapter
21+
import jahirfiquitiva.libs.kuper.ui.fragments.KuperFragment
22+
import jahirfiquitiva.libs.kuper.ui.fragments.SetupFragment
23+
import jahirfiquitiva.libs.kuper.ui.fragments.WallpapersFragment
24+
25+
internal class KuperSectionsAdapter(
26+
manager: FragmentManager,
27+
private val withSetup: Boolean,
28+
private val withWallpapers: Boolean,
29+
private val withChecker: Boolean
30+
) :
31+
DynamicFragmentsPagerAdapter(manager) {
32+
33+
private val wallpapersSection: Int
34+
get() = if (withSetup) 2 else 1
35+
36+
private val kuperSection: Int
37+
get() = if (withSetup) 1 else 0
38+
39+
private val setupSection: Int
40+
get() = if (withSetup) 0 else -1
41+
42+
override fun createItem(position: Int): Fragment = if (position >= 0) {
43+
when (position) {
44+
wallpapersSection -> WallpapersFragment.create(withChecker)
45+
kuperSection -> KuperFragment()
46+
setupSection -> SetupFragment()
47+
else -> Fragment()
48+
}
49+
} else Fragment()
50+
51+
override fun getCount(): Int {
52+
return if (withWallpapers) {
53+
if (withSetup) 3 else 2
54+
} else {
55+
if (withSetup) 2 else 1
56+
}
57+
}
58+
}

library/src/main/kotlin/jahirfiquitiva/libs/kuper/ui/fragments/KuperFragment.kt

+12-18
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import ca.allanwang.kau.utils.setPaddingBottom
2929
import ca.allanwang.kau.utils.toast
3030
import com.bumptech.glide.Glide
3131
import com.pluscubed.recyclerfastscroll.RecyclerFastScroller
32-
import jahirfiquitiva.libs.archhelpers.extensions.lazyViewModel
32+
import jahirfiquitiva.libs.archhelpers.extensions.getViewModel
3333
import jahirfiquitiva.libs.archhelpers.ui.fragments.ViewModelFragment
3434
import jahirfiquitiva.libs.frames.helpers.extensions.jfilter
3535
import jahirfiquitiva.libs.frames.helpers.extensions.mdDialog
@@ -41,12 +41,12 @@ import jahirfiquitiva.libs.kext.extensions.hasContent
4141
import jahirfiquitiva.libs.kext.extensions.int
4242
import jahirfiquitiva.libs.kext.extensions.isLowRamDevice
4343
import jahirfiquitiva.libs.kuper.R
44-
import jahirfiquitiva.libs.kuper.models.KuperKomponent
4544
import jahirfiquitiva.libs.kuper.helpers.utils.KL
4645
import jahirfiquitiva.libs.kuper.helpers.utils.KLCK_PACKAGE
4746
import jahirfiquitiva.libs.kuper.helpers.utils.KLWP_PACKAGE
4847
import jahirfiquitiva.libs.kuper.helpers.utils.KWGT_PACKAGE
4948
import jahirfiquitiva.libs.kuper.helpers.utils.ZOOPER_PACKAGE
49+
import jahirfiquitiva.libs.kuper.models.KuperKomponent
5050
import jahirfiquitiva.libs.kuper.providers.viewmodels.KuperViewModel
5151
import jahirfiquitiva.libs.kuper.ui.activities.KuperActivity
5252
import jahirfiquitiva.libs.kuper.ui.adapters.KuperAdapter
@@ -56,11 +56,9 @@ import jahirfiquitiva.libs.kuper.ui.decorations.SectionedGridSpacingDecoration
5656
@Suppress("DEPRECATION")
5757
class KuperFragment : ViewModelFragment<KuperKomponent>() {
5858

59-
private val kuperViewModel: KuperViewModel by lazyViewModel()
60-
59+
private var kuperViewModel: KuperViewModel? = null
6160
private var recyclerView: EmptyViewRecyclerView? = null
6261
private var fastScroller: RecyclerFastScroller? = null
63-
6462
private var kuperAdapter: KuperAdapter? = null
6563

6664
private val wallpaper: Drawable? by lazy {
@@ -124,23 +122,19 @@ class KuperFragment : ViewModelFragment<KuperKomponent>() {
124122
fastScroller?.attachRecyclerView(this)
125123
}
126124
}
127-
128-
recyclerView?.state = EmptyViewRecyclerView.State.LOADING
129-
130-
postDelayed(5) { loadDataFromViewModel() }
131125
}
132126

133127
fun applyFilter(filter: String = "", closed: Boolean = false) {
134128
if (filter.hasContent()) {
135129
recyclerView?.setEmptyImage(R.drawable.no_results)
136130
recyclerView?.setEmptyText(R.string.search_no_results)
137-
kuperAdapter?.setItems(ArrayList(kuperViewModel.getData().orEmpty()).jfilter {
131+
kuperAdapter?.setItems(ArrayList(kuperViewModel?.getData().orEmpty()).jfilter {
138132
it.name.contains(filter, true) || it.type.toString().contains(filter, true)
139133
})
140134
} else {
141135
recyclerView?.setEmptyImage(R.drawable.empty_section)
142136
recyclerView?.setEmptyText(R.string.empty_section)
143-
kuperAdapter?.setItems(ArrayList(kuperViewModel.getData().orEmpty()))
137+
kuperAdapter?.setItems(ArrayList(kuperViewModel?.getData().orEmpty()))
144138
}
145139
if (!closed)
146140
scrollToTop()
@@ -179,24 +173,24 @@ class KuperFragment : ViewModelFragment<KuperKomponent>() {
179173
}
180174
}
181175

176+
override fun initViewModels() {
177+
kuperViewModel = getViewModel()
178+
}
179+
182180
override fun loadDataFromViewModel() {
183-
activity?.let { kuperViewModel.loadData(it) }
181+
activity?.let { kuperViewModel?.loadData(it) }
184182
}
185183

186-
override fun autoStartLoad() = false
184+
override fun autoStartLoad() = true
187185

188186
override fun registerObservers() {
189-
kuperViewModel.observe(this) {
187+
kuperViewModel?.observe(this) {
190188
recyclerView?.state = EmptyViewRecyclerView.State.NORMAL
191189
kuperAdapter?.setItems(it)
192190
(activity as? KuperActivity)?.destroyDialog()
193191
}
194192
}
195193

196-
override fun unregisterObservers() {
197-
kuperViewModel.destroy(this)
198-
}
199-
200194
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
201195
super.setUserVisibleHint(isVisibleToUser)
202196
if (isVisibleToUser) {

library/src/main/kotlin/jahirfiquitiva/libs/kuper/ui/fragments/SetupFragment.kt

+9-16
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import ca.allanwang.kau.utils.dpToPx
2222
import ca.allanwang.kau.utils.openLink
2323
import ca.allanwang.kau.utils.setPaddingBottom
2424
import com.pluscubed.recyclerfastscroll.RecyclerFastScroller
25-
import jahirfiquitiva.libs.archhelpers.extensions.lazyViewModel
25+
import jahirfiquitiva.libs.archhelpers.extensions.getViewModel
2626
import jahirfiquitiva.libs.archhelpers.ui.fragments.ViewModelFragment
2727
import jahirfiquitiva.libs.frames.helpers.utils.PLAY_STORE_LINK_PREFIX
2828
import jahirfiquitiva.libs.frames.ui.widgets.EmptyViewRecyclerView
@@ -42,11 +42,9 @@ import java.lang.ref.WeakReference
4242
@Suppress("DEPRECATION")
4343
class SetupFragment : ViewModelFragment<KuperApp>() {
4444

45-
private val appsModel: SetupViewModel by lazyViewModel()
46-
45+
private var appsModel: SetupViewModel? = null
4746
private var recyclerView: EmptyViewRecyclerView? = null
4847
private var fastScroller: RecyclerFastScroller? = null
49-
5048
private var setupAdapter: SetupAdapter? = null
5149

5250
fun scrollToTop() {
@@ -81,11 +79,7 @@ class SetupFragment : ViewModelFragment<KuperApp>() {
8179
}
8280

8381
fastScroller?.attachRecyclerView(recyclerView)
84-
85-
recyclerView.state = EmptyViewRecyclerView.State.LOADING
8682
}
87-
88-
recyclerView?.state = EmptyViewRecyclerView.State.LOADING
8983
loadDataFromViewModel()
9084
}
9185

@@ -104,25 +98,24 @@ class SetupFragment : ViewModelFragment<KuperApp>() {
10498
}
10599
}
106100

101+
override fun initViewModels() {
102+
appsModel = getViewModel()
103+
}
104+
107105
override fun loadDataFromViewModel() {
108-
appsModel.loadData(ctxt, true)
106+
appsModel?.loadData(ctxt, true)
109107
}
110108

111109
override fun autoStartLoad() = true
112110

113111
override fun registerObservers() {
114-
appsModel.observe(
115-
this, {
112+
appsModel?.observe(this) {
116113
if (it.isEmpty()) {
117114
(activity as? KuperActivity)?.hideSetup()
118115
} else {
119116
setupAdapter?.updateApps(it)
120117
}
121-
})
122-
}
123-
124-
override fun unregisterObservers() {
125-
appsModel.destroy(this)
118+
}
126119
}
127120

128121
override fun setUserVisibleHint(isVisibleToUser: Boolean) {

0 commit comments

Comments
 (0)