mirror of
https://github.com/SimpleMobileTools/Simple-App-Launcher.git
synced 2025-04-23 22:37:19 +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.Menu
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import com.simplemobiletools.applauncher.R
|
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.databases.DbHelper
|
||||||
import com.simplemobiletools.applauncher.dialogs.AddAppDialog
|
import com.simplemobiletools.applauncher.dialogs.AddAppDialog
|
||||||
import com.simplemobiletools.applauncher.extensions.isFirstRun
|
import com.simplemobiletools.applauncher.extensions.isFirstRun
|
||||||
import com.simplemobiletools.applauncher.extensions.preferences
|
import com.simplemobiletools.applauncher.extensions.preferences
|
||||||
import com.simplemobiletools.applauncher.extensions.viewIntent
|
import com.simplemobiletools.applauncher.extensions.viewIntent
|
||||||
|
import com.simplemobiletools.applauncher.models.AppLauncher
|
||||||
import kotlinx.android.synthetic.main.activity_main.*
|
import kotlinx.android.synthetic.main.activity_main.*
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class MainActivity : SimpleActivity() {
|
class MainActivity : SimpleActivity() {
|
||||||
lateinit var dbHelper: DbHelper
|
lateinit var dbHelper: DbHelper
|
||||||
|
lateinit var launchers: ArrayList<AppLauncher>
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setContentView(R.layout.activity_main)
|
setContentView(R.layout.activity_main)
|
||||||
dbHelper = DbHelper(applicationContext)
|
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)
|
val launchIntent = packageManager.getLaunchIntentForPackage(it.pkgName)
|
||||||
if (launchIntent != null) {
|
if (launchIntent != null) {
|
||||||
startActivity(launchIntent)
|
startActivity(launchIntent)
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.simplemobiletools.applauncher.adapters
|
package com.simplemobiletools.applauncher.adapters
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import android.support.v7.widget.RecyclerView
|
import android.support.v7.widget.RecyclerView
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
@ -8,11 +9,12 @@ import com.simplemobiletools.applauncher.R
|
|||||||
import com.simplemobiletools.applauncher.models.AppLauncher
|
import com.simplemobiletools.applauncher.models.AppLauncher
|
||||||
import kotlinx.android.synthetic.main.app_launcher_dialog_item.view.*
|
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>() {
|
RecyclerView.Adapter<RecyclerAdapter.ViewHolder>() {
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||||
holder.bindView(launchers[position])
|
holder.bindView(cxt, launchers[position])
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder {
|
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) {
|
class ViewHolder(view: View, val itemClick: (AppLauncher) -> Unit) : RecyclerView.ViewHolder(view) {
|
||||||
fun bindView(launcher: AppLauncher) {
|
fun bindView(context: Context, launcher: AppLauncher) {
|
||||||
with(launcher) {
|
with(launcher) {
|
||||||
itemView.launcher_label.text = launcher.name
|
itemView.launcher_label.text = launcher.name
|
||||||
itemView.launcher_icon.setImageDrawable(launcher.drawable)
|
|
||||||
itemView.setOnClickListener { itemClick(this) }
|
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.ContentValues
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.database.Cursor
|
|
||||||
import android.database.sqlite.SQLiteDatabase
|
import android.database.sqlite.SQLiteDatabase
|
||||||
import android.database.sqlite.SQLiteOpenHelper
|
import android.database.sqlite.SQLiteOpenHelper
|
||||||
import com.simplemobiletools.applauncher.R
|
import com.simplemobiletools.applauncher.R
|
||||||
|
import com.simplemobiletools.applauncher.models.AppLauncher
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class DbHelper(context: Context) : SQLiteOpenHelper(context, "launchers.db", null, 1) {
|
class DbHelper(context: Context) : SQLiteOpenHelper(context, "launchers.db", null, 1) {
|
||||||
val TABLE = "launchers"
|
val TABLE = "launchers"
|
||||||
@ -43,8 +44,20 @@ class DbHelper(context: Context) : SQLiteOpenHelper(context, "launchers.db", nul
|
|||||||
db.insert(TABLE, null, contentValues)
|
db.insert(TABLE, null, contentValues)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getLaunchers(): Cursor {
|
fun getLaunchers(): ArrayList<AppLauncher> {
|
||||||
return readableDatabase.query(TABLE, arrayOf(NAME, PKG_NAME, ICON_ID), null, null, null, null, NAME)
|
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) {
|
override fun onCreate(db: SQLiteDatabase) {
|
||||||
|
@ -47,7 +47,7 @@ class AddAppDialog() : DialogFragment() {
|
|||||||
|
|
||||||
val sorted = apps.sortedWith(compareBy { it.name.toLowerCase() })
|
val sorted = apps.sortedWith(compareBy { it.name.toLowerCase() })
|
||||||
val unique = sorted.distinctBy { it.pkgName }
|
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