mirror of
https://github.com/SimpleMobileTools/Simple-App-Launcher.git
synced 2025-04-24 22:58:45 +02:00
use the same recycler adapter under every circumstance
This commit is contained in:
parent
c0e3e25be0
commit
0bc34273d7
@ -5,22 +5,26 @@ import android.os.Bundle
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import com.simplemobiletools.applauncher.R
|
||||
import com.simplemobiletools.applauncher.adapters.MyCursorAdapter
|
||||
import com.simplemobiletools.applauncher.adapters.RecyclerAdapter
|
||||
import com.simplemobiletools.applauncher.databases.DbHelper
|
||||
import com.simplemobiletools.applauncher.dialogs.AddAppDialog
|
||||
import com.simplemobiletools.applauncher.extensions.isFirstRun
|
||||
import com.simplemobiletools.applauncher.extensions.preferences
|
||||
import com.simplemobiletools.applauncher.extensions.viewIntent
|
||||
import com.simplemobiletools.applauncher.models.AppLauncher
|
||||
import kotlinx.android.synthetic.main.activity_main.*
|
||||
import java.util.*
|
||||
|
||||
class MainActivity : SimpleActivity() {
|
||||
lateinit var dbHelper: DbHelper
|
||||
lateinit var launchers: ArrayList<AppLauncher>
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_main)
|
||||
dbHelper = DbHelper(applicationContext)
|
||||
launchers_holder.adapter = MyCursorAdapter(applicationContext, dbHelper.getLaunchers()) {
|
||||
launchers = dbHelper.getLaunchers()
|
||||
launchers_holder.adapter = RecyclerAdapter(applicationContext, launchers) {
|
||||
val launchIntent = packageManager.getLaunchIntentForPackage(it.pkgName)
|
||||
if (launchIntent != null) {
|
||||
startActivity(launchIntent)
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.simplemobiletools.applauncher.adapters
|
||||
|
||||
import android.content.Context
|
||||
import android.support.v7.widget.RecyclerView
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
@ -8,11 +9,12 @@ import com.simplemobiletools.applauncher.R
|
||||
import com.simplemobiletools.applauncher.models.AppLauncher
|
||||
import kotlinx.android.synthetic.main.app_launcher_dialog_item.view.*
|
||||
|
||||
class RecyclerAdapter(val launchers: List<AppLauncher>, val itemClick: (AppLauncher) -> Unit) :
|
||||
|
||||
class RecyclerAdapter(val cxt: Context, val launchers: List<AppLauncher>, val itemClick: (AppLauncher) -> Unit) :
|
||||
RecyclerView.Adapter<RecyclerAdapter.ViewHolder>() {
|
||||
|
||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||
holder.bindView(launchers[position])
|
||||
holder.bindView(cxt, launchers[position])
|
||||
}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder {
|
||||
@ -25,11 +27,18 @@ class RecyclerAdapter(val launchers: List<AppLauncher>, val itemClick: (AppLaunc
|
||||
}
|
||||
|
||||
class ViewHolder(view: View, val itemClick: (AppLauncher) -> Unit) : RecyclerView.ViewHolder(view) {
|
||||
fun bindView(launcher: AppLauncher) {
|
||||
fun bindView(context: Context, launcher: AppLauncher) {
|
||||
with(launcher) {
|
||||
itemView.launcher_label.text = launcher.name
|
||||
itemView.launcher_icon.setImageDrawable(launcher.drawable)
|
||||
itemView.setOnClickListener { itemClick(this) }
|
||||
|
||||
if (launcher.iconId != 0) {
|
||||
val icon = context.resources.getDrawable(launcher.iconId)
|
||||
itemView.launcher_icon.setImageDrawable(icon)
|
||||
} else {
|
||||
val icon = context.packageManager.getApplicationIcon(launcher.pkgName)
|
||||
itemView.launcher_icon.setImageDrawable(icon)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,10 +2,11 @@ package com.simplemobiletools.applauncher.databases
|
||||
|
||||
import android.content.ContentValues
|
||||
import android.content.Context
|
||||
import android.database.Cursor
|
||||
import android.database.sqlite.SQLiteDatabase
|
||||
import android.database.sqlite.SQLiteOpenHelper
|
||||
import com.simplemobiletools.applauncher.R
|
||||
import com.simplemobiletools.applauncher.models.AppLauncher
|
||||
import java.util.*
|
||||
|
||||
class DbHelper(context: Context) : SQLiteOpenHelper(context, "launchers.db", null, 1) {
|
||||
val TABLE = "launchers"
|
||||
@ -43,8 +44,20 @@ class DbHelper(context: Context) : SQLiteOpenHelper(context, "launchers.db", nul
|
||||
db.insert(TABLE, null, contentValues)
|
||||
}
|
||||
|
||||
fun getLaunchers(): Cursor {
|
||||
return readableDatabase.query(TABLE, arrayOf(NAME, PKG_NAME, ICON_ID), null, null, null, null, NAME)
|
||||
fun getLaunchers(): ArrayList<AppLauncher> {
|
||||
val launchers = ArrayList<AppLauncher>()
|
||||
val cursor = readableDatabase.query(TABLE, arrayOf(NAME, PKG_NAME, ICON_ID), null, null, null, null, NAME)
|
||||
try {
|
||||
while (cursor.moveToNext()) {
|
||||
val name = cursor.getString(cursor.getColumnIndex(DbHelper.NAME))
|
||||
val pkgName = cursor.getString(cursor.getColumnIndex(DbHelper.PKG_NAME))
|
||||
val icon = cursor.getInt(cursor.getColumnIndex(DbHelper.ICON_ID))
|
||||
launchers.add(AppLauncher(name, pkgName, icon, null))
|
||||
}
|
||||
} finally {
|
||||
cursor.close()
|
||||
}
|
||||
return launchers
|
||||
}
|
||||
|
||||
override fun onCreate(db: SQLiteDatabase) {
|
||||
|
@ -47,7 +47,7 @@ class AddAppDialog() : DialogFragment() {
|
||||
|
||||
val sorted = apps.sortedWith(compareBy { it.name.toLowerCase() })
|
||||
val unique = sorted.distinctBy { it.pkgName }
|
||||
recyclerView.launchers_holder.adapter = RecyclerAdapter(unique) {
|
||||
recyclerView.launchers_holder.adapter = RecyclerAdapter(activity, unique) {
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user