mirror of
				https://github.com/SimpleMobileTools/Simple-Launcher.git
				synced 2025-06-05 21:59:15 +02:00 
			
		
		
		
	adding some widget fetching code
This commit is contained in:
		@@ -30,9 +30,9 @@ class AllAppsFragment(context: Context, attributeSet: AttributeSet) : RelativeLa
 | 
			
		||||
    @SuppressLint("ClickableViewAccessibility")
 | 
			
		||||
    fun setupFragment(activity: MainActivity) {
 | 
			
		||||
        this.activity = activity
 | 
			
		||||
        getLaunchers()
 | 
			
		||||
        background.applyColorFilter(activity.getProperBackgroundColor())
 | 
			
		||||
        setPadding(0, activity.statusBarHeight, 0, 0)
 | 
			
		||||
        getLaunchers()
 | 
			
		||||
 | 
			
		||||
        all_apps_grid.setOnTouchListener { v, event ->
 | 
			
		||||
            if (event.actionMasked == MotionEvent.ACTION_UP || event.actionMasked == MotionEvent.ACTION_CANCEL) {
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,52 @@
 | 
			
		||||
package com.simplemobiletools.launcher.fragments
 | 
			
		||||
 | 
			
		||||
import android.appwidget.AppWidgetManager
 | 
			
		||||
import android.content.Context
 | 
			
		||||
import android.util.AttributeSet
 | 
			
		||||
import android.widget.RelativeLayout
 | 
			
		||||
import com.simplemobiletools.commons.extensions.applyColorFilter
 | 
			
		||||
import com.simplemobiletools.commons.extensions.getProperBackgroundColor
 | 
			
		||||
import com.simplemobiletools.commons.extensions.statusBarHeight
 | 
			
		||||
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
 | 
			
		||||
import com.simplemobiletools.launcher.activities.MainActivity
 | 
			
		||||
import com.simplemobiletools.launcher.models.AppWidget
 | 
			
		||||
 | 
			
		||||
class WidgetsFragment(context: Context, attributeSet: AttributeSet) : RelativeLayout(context, attributeSet) {
 | 
			
		||||
    private var activity: MainActivity? = null
 | 
			
		||||
 | 
			
		||||
    fun setupFragment(activity: MainActivity) {
 | 
			
		||||
        this.activity = activity
 | 
			
		||||
        background.applyColorFilter(activity.getProperBackgroundColor())
 | 
			
		||||
        setPadding(0, activity.statusBarHeight, 0, 0)
 | 
			
		||||
        getWidgets()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun getWidgets() {
 | 
			
		||||
        ensureBackgroundThread {
 | 
			
		||||
            var widgets = ArrayList<AppWidget>()
 | 
			
		||||
            val manager = AppWidgetManager.getInstance(context)
 | 
			
		||||
            val infoList = manager.installedProviders
 | 
			
		||||
            for (info in infoList) {
 | 
			
		||||
                val appPackageName = info.provider.packageName
 | 
			
		||||
                val appTitle = getAppNameFromPackage(appPackageName) ?: continue
 | 
			
		||||
                val widgetTitle = info.loadLabel(activity?.packageManager)
 | 
			
		||||
                val width = info.minWidth
 | 
			
		||||
                val height = info.minHeight
 | 
			
		||||
                val widget = AppWidget(appPackageName, appTitle, widgetTitle, width, height)
 | 
			
		||||
                widgets.add(widget)
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            widgets = widgets.sortedWith(compareBy({ it.appTitle }, { it.widgetTitle })).toMutableList() as ArrayList<AppWidget>
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private fun getAppNameFromPackage(packageName: String): String? {
 | 
			
		||||
        try {
 | 
			
		||||
            val appInfo = activity!!.packageManager.getApplicationInfo(packageName, 0)
 | 
			
		||||
            return activity!!.packageManager.getApplicationLabel(appInfo).toString()
 | 
			
		||||
        } catch (ignored: Exception) {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return null
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,3 @@
 | 
			
		||||
package com.simplemobiletools.launcher.models
 | 
			
		||||
 | 
			
		||||
data class AppWidget(var appPackageName: String, var appTitle: String, val widgetTitle: String, var width: Int, val height: Int)
 | 
			
		||||
							
								
								
									
										23
									
								
								app/src/main/res/layout/widgets_fragment.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								app/src/main/res/layout/widgets_fragment.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<com.simplemobiletools.launcher.fragments.AllAppsFragment xmlns:android="http://schemas.android.com/apk/res/android"
 | 
			
		||||
    xmlns:app="http://schemas.android.com/apk/res-auto"
 | 
			
		||||
    android:id="@+id/widgets_holder"
 | 
			
		||||
    android:layout_width="match_parent"
 | 
			
		||||
    android:layout_height="wrap_content"
 | 
			
		||||
    android:background="@drawable/all_apps_background">
 | 
			
		||||
 | 
			
		||||
    <com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller
 | 
			
		||||
        android:id="@+id/widgets_fastscroller"
 | 
			
		||||
        android:layout_width="match_parent"
 | 
			
		||||
        android:layout_height="wrap_content"
 | 
			
		||||
        app:fastScrollEnabled="false">
 | 
			
		||||
 | 
			
		||||
        <com.simplemobiletools.commons.views.MyRecyclerView
 | 
			
		||||
            android:id="@+id/widgets_grid"
 | 
			
		||||
            android:layout_width="match_parent"
 | 
			
		||||
            android:layout_height="match_parent"
 | 
			
		||||
            android:clipToPadding="false"
 | 
			
		||||
            app:layoutManager="com.simplemobiletools.commons.views.MyLinearLayoutManager" />
 | 
			
		||||
 | 
			
		||||
    </com.qtalk.recyclerviewfastscroller.RecyclerViewFastScroller>
 | 
			
		||||
</com.simplemobiletools.launcher.fragments.AllAppsFragment>
 | 
			
		||||
		Reference in New Issue
	
	Block a user