Ver Fonte

Merge pull request #41 from parshav/task/code_cleanup

Task/code cleanup
Beautus há 6 anos atrás
pai
commit
bf71a45d26

+ 2 - 2
app/src/main/java/com/sduduzog/slimlauncher/MainActivity.kt

@@ -27,12 +27,12 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
     }
 
     private fun dispatchBack() {
-        for (s in subscribers) if (s.onBack()) return
+        subscribers.forEach { if (it.onBack()) return@forEach }
         completeBackAction()
     }
 
     private fun dispatchHome() {
-        for (s in subscribers) s.onHome()
+        subscribers.forEach { it.onHome() }
     }
 
     override fun onCreate(savedInstanceState: Bundle?) {

+ 5 - 6
app/src/main/java/com/sduduzog/slimlauncher/adapters/AddAppAdapter.kt

@@ -11,7 +11,7 @@ import com.sduduzog.slimlauncher.utils.OnAppClickedListener
 
 class AddAppAdapter(private val listener: OnAppClickedListener) : RecyclerView.Adapter<AddAppAdapter.ViewHolder>() {
 
-    private var apps: List<App> = listOf()
+    private val apps: MutableList<App> = mutableListOf()
 
     override fun getItemCount(): Int = apps.size
 
@@ -28,8 +28,9 @@ class AddAppAdapter(private val listener: OnAppClickedListener) : RecyclerView.A
         return ViewHolder(view)
     }
 
-    fun setItems(apps: List<App>){
-        this.apps = apps
+    fun setItems(apps: List<App>) {
+        this.apps.clear()
+        this.apps.addAll(apps)
         notifyDataSetChanged()
     }
 
@@ -37,8 +38,6 @@ class AddAppAdapter(private val listener: OnAppClickedListener) : RecyclerView.A
 
         val appName: TextView = itemView.findViewById(R.id.aa_list_item_app_name)
 
-        override fun toString(): String {
-            return super.toString() + " '${appName.text}'"
-        }
+        override fun toString(): String = "${super.toString()} '${appName.text}'"
     }
 }

+ 9 - 7
app/src/main/java/com/sduduzog/slimlauncher/adapters/CustomAppsAdapter.kt

@@ -16,7 +16,7 @@ import com.sduduzog.slimlauncher.utils.OnShitDoneToAppsListener
 
 class CustomAppsAdapter(private val listener: OnShitDoneToAppsListener) : RecyclerView.Adapter<CustomAppsAdapter.ViewHolder>(), OnItemActionListener {
 
-    private var apps: MutableList<HomeApp> = mutableListOf()
+    private val apps: MutableList<HomeApp> = mutableListOf()
     private lateinit var touchHelper: ItemTouchHelper
 
     override fun getItemCount(): Int = apps.size
@@ -42,13 +42,16 @@ class CustomAppsAdapter(private val listener: OnShitDoneToAppsListener) : Recycl
     }
 
     fun setItems(apps: List<HomeApp>) {
-        this.apps = sanitiseIndexes(apps) as MutableList<HomeApp>
+        this.apps.apply {
+            clear()
+            addAll(sanitiseIndexes(apps))
+        }
         notifyDataSetChanged()
     }
 
     private fun sanitiseIndexes(apps: List<HomeApp>): List<HomeApp> {
-        for (i in apps.indices) {
-            apps[i].sortingIndex = i
+        apps.indices.forEach {
+            apps[it].sortingIndex = it
         }
         return apps
     }
@@ -82,12 +85,11 @@ class CustomAppsAdapter(private val listener: OnShitDoneToAppsListener) : Recycl
     }
 
     inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+
         val dragHandle: TextView = itemView.findViewById(R.id.ca_list_item_drag_handle)
         val appName: TextView = itemView.findViewById(R.id.ca_list_item_app_name)
         val menuIcon: ImageView = itemView.findViewById(R.id.ca_list_item_more_icon)
 
-        override fun toString(): String {
-            return super.toString() + " '${appName.text}'"
-        }
+        override fun toString(): String = "${super.toString()} '${appName.text}'"
     }
 }

+ 5 - 6
app/src/main/java/com/sduduzog/slimlauncher/adapters/HomeAdapter.kt

@@ -13,7 +13,7 @@ import com.sduduzog.slimlauncher.utils.OnLaunchAppListener
 class HomeAdapter(private val listener: OnLaunchAppListener)
     : RecyclerView.Adapter<HomeAdapter.ViewHolder>() {
 
-    private var apps: List<HomeApp> = listOf()
+    private val apps: MutableList<HomeApp> = mutableListOf()
 
     override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
         val view = LayoutInflater.from(parent.context)
@@ -22,7 +22,7 @@ class HomeAdapter(private val listener: OnLaunchAppListener)
     }
 
     override fun onBindViewHolder(holder: ViewHolder, position: Int) {
-        val item = apps.elementAt(position)
+        val item = apps[position]
         holder.mLabelView.text = item.appName
         holder.mLabelView.setOnClickListener {
             listener.onLaunch(item, it)
@@ -32,16 +32,15 @@ class HomeAdapter(private val listener: OnLaunchAppListener)
     override fun getItemCount(): Int = apps.size
 
     fun setItems(list: List<HomeApp>) {
-        this.apps = list
+        apps.addAll(list)
         notifyDataSetChanged()
     }
 
 
     inner class ViewHolder(mView: View) : RecyclerView.ViewHolder(mView) {
+
         val mLabelView: TextView = mView.findViewById(R.id.home_fragment_list_item_app_name)
 
-        override fun toString(): String {
-            return super.toString() + " '" + mLabelView.text + "'"
-        }
+        override fun toString(): String = "${super.toString()} '${mLabelView.text}'"
     }
 }

+ 3 - 3
app/src/main/java/com/sduduzog/slimlauncher/data/model/App.kt

@@ -1,7 +1,7 @@
 package com.sduduzog.slimlauncher.data.model
 
 data class App(
-        var appName: String,
-        var packageName: String,
-        var activityName: String
+        val appName: String,
+        val packageName: String,
+        val activityName: String
 )

+ 4 - 6
app/src/main/java/com/sduduzog/slimlauncher/dialogs/ChangeThemeDialog.kt

@@ -9,13 +9,13 @@ import androidx.core.content.edit
 import androidx.fragment.app.DialogFragment
 import com.sduduzog.slimlauncher.R
 
-class ChangeThemeDialog : DialogFragment(){
+class ChangeThemeDialog private constructor() : DialogFragment() {
 
     private lateinit var settings: SharedPreferences
 
     override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
-        val builder = AlertDialog.Builder(context!!)
-        settings  = context!!.getSharedPreferences(getString(R.string.prefs_settings), MODE_PRIVATE)
+        val builder = AlertDialog.Builder(context)
+        settings = context!!.getSharedPreferences(getString(R.string.prefs_settings), MODE_PRIVATE)
 
         val active = settings.getInt(getString(R.string.prefs_settings_key_theme), 0)
         builder.setTitle(R.string.choose_theme_dialog_title)
@@ -29,8 +29,6 @@ class ChangeThemeDialog : DialogFragment(){
     }
 
     companion object {
-        fun getThemeChooser(): ChangeThemeDialog{
-            return ChangeThemeDialog()
-        }
+        fun getThemeChooser(): ChangeThemeDialog = ChangeThemeDialog()
     }
 }

+ 5 - 8
app/src/main/java/com/sduduzog/slimlauncher/dialogs/ChooseTimeFormatDialog.kt

@@ -9,22 +9,21 @@ import androidx.core.content.edit
 import androidx.fragment.app.DialogFragment
 import com.sduduzog.slimlauncher.R
 
-class ChooseTimeFormatDialog : DialogFragment(){
+class ChooseTimeFormatDialog private constructor() : DialogFragment() {
 
     private lateinit var settings: SharedPreferences
 
     override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
-        val builder = AlertDialog.Builder(context!!)
+        val builder = AlertDialog.Builder(context)
         settings = context!!.getSharedPreferences(getString(R.string.prefs_settings), MODE_PRIVATE)
 
         val is24Hour = settings.getBoolean(getString(R.string.prefs_settings_key_time_format), true)
         val index = if (is24Hour) 1 else 0
         builder.setTitle(R.string.choose_time_format_dialog_title)
-        builder.setSingleChoiceItems(R.array.time_format_array, index) {dialogInterface, i ->
+        builder.setSingleChoiceItems(R.array.time_format_array, index) { dialogInterface, i ->
             dialogInterface.dismiss()
             settings.edit {
-                val b = i != 0
-                putBoolean(getString(R.string.prefs_settings_key_time_format), b)
+                putBoolean(getString(R.string.prefs_settings_key_time_format), i != 0)
             }
 
         }
@@ -33,8 +32,6 @@ class ChooseTimeFormatDialog : DialogFragment(){
 
 
     companion object {
-        fun getInstance(): ChooseTimeFormatDialog{
-            return ChooseTimeFormatDialog()
-        }
+        fun getInstance(): ChooseTimeFormatDialog = ChooseTimeFormatDialog()
     }
 }

+ 12 - 16
app/src/main/java/com/sduduzog/slimlauncher/dialogs/RenameAppDialog.kt

@@ -12,21 +12,22 @@ import com.sduduzog.slimlauncher.data.MainViewModel
 import com.sduduzog.slimlauncher.data.model.HomeApp
 import kotlinx.android.synthetic.main.customise_apps_fragment.*
 
-class RenameAppDialog : DialogFragment() {
-
-    private lateinit var app: HomeApp
-    private lateinit var model: MainViewModel
+class RenameAppDialog private constructor(
+        private val app: HomeApp,
+        private val model: MainViewModel
+) : DialogFragment() {
 
     override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
         val view = LayoutInflater.from(context).inflate(R.layout.rename_dialog_edit_text, customise_apps_fragment, false)
         val editText: EditText = view.findViewById(R.id.rename_editText)
         editText.text.append(app.appName)
-        val builder = AlertDialog.Builder(context!!)
-        builder.setTitle("Rename ${app.appName}")
-        builder.setView(view)
-        builder.setPositiveButton("DONE") { _, _ ->
-            val name = editText.text.toString()
-            updateApp(name)
+        val builder = AlertDialog.Builder(context!!).apply {
+            setTitle("Rename ${app.appName}")
+            setView(view)
+            setPositiveButton("DONE") { _, _ ->
+                val name = editText.text.toString()
+                updateApp(name)
+            }
         }
         editText.setOnEditorActionListener { v, _, _ ->
             val name = v.text.toString()
@@ -47,11 +48,6 @@ class RenameAppDialog : DialogFragment() {
     }
 
     companion object {
-        fun getInstance(app: HomeApp, model: MainViewModel): RenameAppDialog {
-            return RenameAppDialog().apply {
-                this.model = model
-                this.app = app
-            }
-        }
+        fun getInstance(app: HomeApp, model: MainViewModel) = RenameAppDialog(app, model)
     }
 }

+ 31 - 22
app/src/main/java/com/sduduzog/slimlauncher/ui/main/HomeFragment.kt

@@ -1,6 +1,11 @@
 package com.sduduzog.slimlauncher.ui.main
 
-import android.content.*
+import android.content.ActivityNotFoundException
+import android.content.BroadcastReceiver
+import android.content.ComponentName
+import android.content.Context
+import android.content.Intent
+import android.content.IntentFilter
 import android.os.Build
 import android.os.Bundle
 import android.provider.AlarmClock
@@ -19,7 +24,8 @@ import com.sduduzog.slimlauncher.utils.BaseFragment
 import com.sduduzog.slimlauncher.utils.OnLaunchAppListener
 import kotlinx.android.synthetic.main.home_fragment.*
 import java.text.SimpleDateFormat
-import java.util.*
+import java.util.Date
+import java.util.Locale
 
 
 class HomeFragment : BaseFragment(), OnLaunchAppListener {
@@ -64,9 +70,7 @@ class HomeFragment : BaseFragment(), OnLaunchAppListener {
         activity?.registerReceiver(receiver, IntentFilter(Intent.ACTION_TIME_TICK))
     }
 
-    override fun getFragmentView(): ViewGroup {
-        return home_fragment
-    }
+    override fun getFragmentView(): ViewGroup = home_fragment
 
     override fun onResume() {
         super.onResume()
@@ -100,10 +104,11 @@ class HomeFragment : BaseFragment(), OnLaunchAppListener {
 
         home_fragment_date.setOnClickListener {
             try {
-                val intent = Intent(Intent.ACTION_MAIN)
-                intent.addCategory(Intent.CATEGORY_APP_CALENDAR)
-                intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
-                launchActivity(it, intent)
+                Intent(Intent.ACTION_MAIN).apply {
+                    addCategory(Intent.CATEGORY_APP_CALENDAR)
+                    flags = Intent.FLAG_ACTIVITY_NEW_TASK
+                    launchActivity(it, this)
+                }
             } catch (e: ActivityNotFoundException) {
                 // Do nothing, we've failed :(
             }
@@ -137,12 +142,15 @@ class HomeFragment : BaseFragment(), OnLaunchAppListener {
         val twenty4Hour = context?.getSharedPreferences(getString(R.string.prefs_settings), Context.MODE_PRIVATE)
                 ?.getBoolean(getString(R.string.prefs_settings_key_time_format), true)
         val date = Date()
-        if (twenty4Hour as Boolean) {
-            val fWatchTime = SimpleDateFormat("h:mm aa", Locale.ROOT)
-            home_fragment_time.text = fWatchTime.format(date)
-        } else {
-            val fWatchTime = SimpleDateFormat("H:mm", Locale.ROOT)
-            home_fragment_time.text = fWatchTime.format(date)
+        when (twenty4Hour) {
+            is Boolean -> {
+                val fWatchTime = SimpleDateFormat("h:mm aa", Locale.ROOT)
+                home_fragment_time.text = fWatchTime.format(date)
+            }
+            else -> {
+                val fWatchTime = SimpleDateFormat("H:mm", Locale.ROOT)
+                home_fragment_time.text = fWatchTime.format(date)
+            }
         }
         val fWatchDate = SimpleDateFormat("EEE, MMM dd", Locale.ROOT)
         home_fragment_date.text = fWatchDate.format(date)
@@ -150,14 +158,15 @@ class HomeFragment : BaseFragment(), OnLaunchAppListener {
 
     override fun onLaunch(app: HomeApp, view: View) {
         try {
-            val intent = Intent()
             val name = ComponentName(app.packageName, app.activityName)
-            intent.action = Intent.ACTION_MAIN
-            intent.addCategory(Intent.CATEGORY_LAUNCHER)
-            intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
-            intent.component = name
-            intent.resolveActivity(activity!!.packageManager)?.let {
-                launchActivity(view, intent)
+            Intent().apply {
+                action = Intent.ACTION_MAIN
+                addCategory(Intent.CATEGORY_LAUNCHER)
+                flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
+                component = name
+                resolveActivity(activity!!.packageManager)?.let {
+                    launchActivity(view, this)
+                }
             }
         } catch (e: Exception) {
             // Do no shit yet

+ 3 - 4
app/src/main/java/com/sduduzog/slimlauncher/ui/options/AddAppFragment.kt

@@ -37,6 +37,7 @@ class AddAppFragment : BaseFragment(), OnAppClickedListener {
         activity?.let {
             viewModel = ViewModelProviders.of(it).get(MainViewModel::class.java)
         } ?: throw Error("How the fuck is this fragment alive while there's no activity?")
+
         viewModel.installedApps.observe(this, Observer {
             val homeApps = viewModel.apps.value.orEmpty()
             it?.let { apps ->
@@ -64,10 +65,8 @@ class AddAppFragment : BaseFragment(), OnAppClickedListener {
             // Do nothing
         }
 
-        override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
-            s?.let {
-                LoadInstalledApps(viewModel, s.toString()).execute(context!!.packageManager)
-            }
+        override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
+            LoadInstalledApps(viewModel, s.toString()).execute(context!!.packageManager)
         }
     }
 

+ 6 - 5
app/src/main/java/com/sduduzog/slimlauncher/ui/options/CustomiseAppsFragment.kt

@@ -109,10 +109,10 @@ class CustomiseAppsFragment : BaseFragment(), OnShitDoneToAppsListener {
     }
 
     private fun showPopupMenu(view: View): PopupMenu {
-        val popup = PopupMenu(context!!, view)
-        popup.menuInflater.inflate(R.menu.customise_apps_popup_menu, popup.menu)
-        popup.show()
-        return popup
+        return PopupMenu(context!!, view).apply {
+            menuInflater.inflate(R.menu.customise_apps_popup_menu, menu)
+            show()
+        }
     }
 
     override fun onAppsUpdated(list: List<HomeApp>) {
@@ -123,7 +123,8 @@ class CustomiseAppsFragment : BaseFragment(), OnShitDoneToAppsListener {
         showPopupMenu(view).setOnMenuItemClickListener {
             when (it.itemId) {
                 R.id.ca_menu_rename -> {
-                    RenameAppDialog.getInstance(app, viewModel).show(childFragmentManager, "SettingsListAdapter")
+                    RenameAppDialog.getInstance(app, viewModel)
+                            .show(childFragmentManager, "SettingsListAdapter")
                 }
                 R.id.ca_menu_remove -> {
                     viewModel.remove(app)

+ 0 - 2
app/src/main/java/com/sduduzog/slimlauncher/utils/BaseFragment.kt

@@ -15,13 +15,11 @@ abstract class BaseFragment : Fragment() {
 
     abstract fun getFragmentView(): ViewGroup
 
-
     override fun onResume() {
         super.onResume()
         val settings = context!!.getSharedPreferences(getString(R.string.prefs_settings), AppCompatActivity.MODE_PRIVATE)
         val active = settings.getInt(getString(R.string.prefs_settings_key_theme), 0)
 
-
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
             when (active) {
                 0, 3, 5 -> {

+ 7 - 4
app/src/main/java/com/sduduzog/slimlauncher/utils/LoadInstalledApps.kt

@@ -10,7 +10,7 @@ import android.provider.MediaStore
 import com.sduduzog.slimlauncher.BuildConfig
 import com.sduduzog.slimlauncher.data.MainViewModel
 import com.sduduzog.slimlauncher.data.model.App
-import java.util.*
+import java.util.Collections
 
 class LoadInstalledApps(private val viewModel: MainViewModel?, private val filterString: String = "") : AsyncTask<PackageManager, Unit, List<App>>() {
 
@@ -24,10 +24,13 @@ class LoadInstalledApps(private val viewModel: MainViewModel?, private val filte
         main.addCategory(Intent.CATEGORY_LAUNCHER)
         val activitiesList = pm.queryIntentActivities(main, 0)
         Collections.sort(activitiesList, ResolveInfo.DisplayNameComparator(pm))
-        for (i in activitiesList.indices) {
-            val item = activitiesList[i]
+        activitiesList.indices.forEach {
+            val item = activitiesList[it]
             val activity = item.activityInfo
-            val app = App(activitiesList[i].loadLabel(pm).toString(), activity.applicationInfo.packageName, activity.name)
+            val app = App(
+                    activitiesList[it].loadLabel(pm).toString(),
+                    activity.applicationInfo.packageName, activity.name
+            )
             list.add(app)
         }