mirror of
				https://github.com/recloudstream/cloudstream.git
				synced 2024-08-15 01:53:11 +00:00 
			
		
		
		
	Fix homepage loading with plugins
This commit is contained in:
		
							parent
							
								
									2d3d8dd781
								
							
						
					
					
						commit
						b2ee957833
					
				
					 3 changed files with 23 additions and 11 deletions
				
			
		|  | @ -87,6 +87,7 @@ import com.lagradost.cloudstream3.plugins.RepositoryManager.PREBUILT_REPOSITORIE | |||
| import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.appStringRepo | ||||
| import com.lagradost.cloudstream3.ui.settings.extensions.RepositoryData | ||||
| import com.lagradost.cloudstream3.utils.Coroutines.main | ||||
| import com.lagradost.cloudstream3.utils.Event | ||||
| 
 | ||||
| 
 | ||||
| const val VLC_PACKAGE = "org.videolan.vlc" | ||||
|  | @ -131,6 +132,7 @@ var app = Requests(responseParser = object : ResponseParser { | |||
| class MainActivity : AppCompatActivity(), ColorPickerDialogListener { | ||||
|     companion object { | ||||
|         const val TAG = "MAINACT" | ||||
|         val afterPluginsLoadedEvent = Event<Boolean>() | ||||
|     } | ||||
| 
 | ||||
|     override fun onColorSelected(dialogId: Int, color: Int) { | ||||
|  | @ -462,6 +464,7 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener { | |||
|             } | ||||
| 
 | ||||
|             PluginManager.loadAllLocalPlugins(this@MainActivity) | ||||
|             afterPluginsLoadedEvent.invoke(true) | ||||
|         } | ||||
| 
 | ||||
| //        ioSafe { | ||||
|  | @ -495,7 +498,8 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener { | |||
| 
 | ||||
|         ioSafe { | ||||
|             initAll() | ||||
|             apis = allProviders | ||||
|             // No duplicates (which can happen by registerMainAPI) | ||||
|             apis = allProviders.distinctBy { it } | ||||
| 
 | ||||
|             try { | ||||
|                 getKey<Array<SettingsGeneral.CustomSite>>(USER_PROVIDER_API)?.let { list -> | ||||
|  | @ -511,7 +515,7 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener { | |||
|                             } | ||||
|                     } | ||||
|                 } | ||||
|                 apis = allProviders | ||||
|                 apis = allProviders.distinctBy { it } | ||||
|                 APIHolder.apiMap = null | ||||
|             } catch (e: Exception) { | ||||
|                 logError(e) | ||||
|  |  | |||
|  | @ -35,6 +35,7 @@ abstract class Plugin { | |||
|     fun registerMainAPI(element: MainAPI) { | ||||
|         Log.i(PLUGIN_TAG, "Adding ${element.name} (${element.mainUrl}) MainAPI") | ||||
|         element.sourcePlugin = this.__filename | ||||
|         // Race condition causing which would case duplicates if not for distinctBy | ||||
|         APIHolder.allProviders.add(element) | ||||
|         APIHolder.addPluginMapping(element) | ||||
|     } | ||||
|  |  | |||
|  | @ -32,6 +32,7 @@ import com.lagradost.cloudstream3.APIHolder.getApiFromNameNull | |||
| import com.lagradost.cloudstream3.APIHolder.getApiProviderLangSettings | ||||
| import com.lagradost.cloudstream3.AcraApplication.Companion.getKey | ||||
| import com.lagradost.cloudstream3.AcraApplication.Companion.setKey | ||||
| import com.lagradost.cloudstream3.MainActivity.Companion.afterPluginsLoadedEvent | ||||
| import com.lagradost.cloudstream3.mvvm.Resource | ||||
| import com.lagradost.cloudstream3.mvvm.logError | ||||
| import com.lagradost.cloudstream3.mvvm.observe | ||||
|  | @ -304,7 +305,8 @@ class HomeFragment : Fragment() { | |||
|                 val cancelBtt = dialog.findViewById<MaterialButton>(R.id.cancel_btt) | ||||
|                 val applyBtt = dialog.findViewById<MaterialButton>(R.id.apply_btt) | ||||
| 
 | ||||
|                 val pairList = getPairList(anime, cartoons, tvs, docs, movies, asian, livestream, nsfw, others) | ||||
|                 val pairList = | ||||
|                     getPairList(anime, cartoons, tvs, docs, movies, asian, livestream, nsfw, others) | ||||
| 
 | ||||
|                 cancelBtt?.setOnClickListener { | ||||
|                     dialog.dismissSafe() | ||||
|  | @ -435,12 +437,13 @@ class HomeFragment : Fragment() { | |||
|     override fun onResume() { | ||||
|         super.onResume() | ||||
|         reloadStored() | ||||
|         afterPluginsLoadedEvent += ::loadHomePage | ||||
|     } | ||||
| /* | ||||
| 
 | ||||
|     override fun onStop() { | ||||
|         backEvent -= ::handleBack | ||||
|         afterPluginsLoadedEvent -= ::loadHomePage | ||||
|         super.onStop() | ||||
|     }*/ | ||||
|     } | ||||
| 
 | ||||
|     private fun reloadStored() { | ||||
|         homeViewModel.loadResumeWatching() | ||||
|  | @ -451,6 +454,14 @@ class HomeFragment : Fragment() { | |||
|         homeViewModel.loadStoredData(list) | ||||
|     } | ||||
| 
 | ||||
|     private fun loadHomePage(successful: Boolean = true) { | ||||
|         val apiName = context?.getKey<String>(HOMEPAGE_API) | ||||
|         if (homeViewModel.apiName.value != apiName || apiName == null) { | ||||
|             //println("Caught home: " + homeViewModel.apiName.value + " at " + apiName) | ||||
|             homeViewModel.loadAndCancel(apiName) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /*private fun handleBack(poppedFragment: Boolean) { | ||||
|         if (poppedFragment) { | ||||
|             reloadStored() | ||||
|  | @ -948,11 +959,7 @@ class HomeFragment : Fragment() { | |||
|         } | ||||
| 
 | ||||
|         reloadStored() | ||||
|         val apiName = context?.getKey<String>(HOMEPAGE_API) | ||||
|         if (homeViewModel.apiName.value != apiName || apiName == null) { | ||||
|             //println("Caught home: " + homeViewModel.apiName.value + " at " + apiName) | ||||
|             homeViewModel.loadAndCancel(apiName) | ||||
|         } | ||||
|         loadHomePage() | ||||
| 
 | ||||
|         home_loaded.setOnScrollChangeListener(NestedScrollView.OnScrollChangeListener { view, _, scrollY, _, oldScrollY -> | ||||
|             val dy = scrollY - oldScrollY | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue