diff --git a/app/build.gradle b/app/build.gradle index 23273af..76bd285 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -100,7 +100,7 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.2.0' implementation 'androidx.gridlayout:gridlayout:1.0.0' implementation 'androidx.palette:palette-ktx:1.0.0' - implementation 'androidx.recyclerview:recyclerview:1.3.2' + implementation 'androidx.recyclerview:recyclerview:1.4.0' implementation 'androidx.preference:preference-ktx:1.2.1' implementation 'com.google.android.material:material:1.12.0' implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3") diff --git a/app/src/main/java/de/jrpie/android/launcher/Functions.kt b/app/src/main/java/de/jrpie/android/launcher/Functions.kt index 7cc5c39..5f7e9c9 100644 --- a/app/src/main/java/de/jrpie/android/launcher/Functions.kt +++ b/app/src/main/java/de/jrpie/android/launcher/Functions.kt @@ -182,5 +182,5 @@ fun getDeviceInfo(): String { fun copyToClipboard(context: Context, text: String) { val clipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager val clipData = ClipData.newPlainText("Debug Info", text) - clipboardManager.setPrimaryClip(clipData); + clipboardManager.setPrimaryClip(clipData) } \ No newline at end of file diff --git a/app/src/main/java/de/jrpie/android/launcher/actions/Gesture.kt b/app/src/main/java/de/jrpie/android/launcher/actions/Gesture.kt index dba314d..34e053e 100644 --- a/app/src/main/java/de/jrpie/android/launcher/actions/Gesture.kt +++ b/app/src/main/java/de/jrpie/android/launcher/actions/Gesture.kt @@ -273,7 +273,7 @@ enum class Gesture( companion object { fun byId(id: String): Gesture? { - return Gesture.values().firstOrNull { it.id == id } + return Gesture.entries.firstOrNull { it.id == id } } } diff --git a/app/src/main/java/de/jrpie/android/launcher/actions/LauncherAction.kt b/app/src/main/java/de/jrpie/android/launcher/actions/LauncherAction.kt index 0220fc2..4f89758 100644 --- a/app/src/main/java/de/jrpie/android/launcher/actions/LauncherAction.kt +++ b/app/src/main/java/de/jrpie/android/launcher/actions/LauncherAction.kt @@ -9,6 +9,7 @@ import android.os.Build import android.os.SystemClock import android.view.KeyEvent import android.widget.Toast +import androidx.appcompat.content.res.AppCompatResources import de.jrpie.android.launcher.Application import de.jrpie.android.launcher.R import de.jrpie.android.launcher.apps.AppFilter @@ -134,7 +135,7 @@ enum class LauncherAction( } override fun getIcon(context: Context): Drawable? { - return context.getDrawable(icon) + return AppCompatResources.getDrawable(context, icon) } override fun isAvailable(context: Context): Boolean { diff --git a/app/src/main/java/de/jrpie/android/launcher/apps/DetailedAppInfo.kt b/app/src/main/java/de/jrpie/android/launcher/apps/DetailedAppInfo.kt index 1984d47..d77bf93 100644 --- a/app/src/main/java/de/jrpie/android/launcher/apps/DetailedAppInfo.kt +++ b/app/src/main/java/de/jrpie/android/launcher/apps/DetailedAppInfo.kt @@ -9,7 +9,7 @@ import de.jrpie.android.launcher.Application import de.jrpie.android.launcher.preferences.LauncherPreferences /** - * Stores information used to create [AppsRecyclerAdapter] rows. + * Stores information used to create [de.jrpie.android.launcher.ui.list.apps.AppsRecyclerAdapter] rows. */ class DetailedAppInfo( val app: AppInfo, diff --git a/app/src/main/java/de/jrpie/android/launcher/preferences/legacy/Version1.kt b/app/src/main/java/de/jrpie/android/launcher/preferences/legacy/Version1.kt index d617127..a61980a 100644 --- a/app/src/main/java/de/jrpie/android/launcher/preferences/legacy/Version1.kt +++ b/app/src/main/java/de/jrpie/android/launcher/preferences/legacy/Version1.kt @@ -68,9 +68,9 @@ private fun Action.Companion.legacyFromPreference(id: String): Action? { val actionId = preferences.getString("$id.app", "")!! var u: Int? = preferences.getInt( "$id.user", - AppInfo.INVALID_USER + INVALID_USER ) - u = if (u == AppInfo.INVALID_USER) null else u + u = if (u == INVALID_USER) null else u return Action.legacyFromId(actionId, u) } @@ -80,9 +80,9 @@ private fun migrateAppInfoStringMap(key: String) { MapAppInfoStringPreferenceSerializer().serialize( preferences.getStringSet(key, setOf())?.mapNotNull { entry -> try { - val obj = JSONObject(entry); + val obj = JSONObject(entry) val info = AppInfo.legacyDeserialize(obj.getString("key")) - val value = obj.getString("value"); + val value = obj.getString("value") Pair(info, value) } catch (_: JSONException) { null diff --git a/app/src/main/java/de/jrpie/android/launcher/preferences/legacy/VersionUnknown.kt b/app/src/main/java/de/jrpie/android/launcher/preferences/legacy/VersionUnknown.kt index c61ca95..a33670b 100644 --- a/app/src/main/java/de/jrpie/android/launcher/preferences/legacy/VersionUnknown.kt +++ b/app/src/main/java/de/jrpie/android/launcher/preferences/legacy/VersionUnknown.kt @@ -4,7 +4,6 @@ import android.content.Context import android.content.SharedPreferences import android.util.Log import de.jrpie.android.launcher.preferences.LauncherPreferences -import de.jrpie.android.launcher.preferences.PREFERENCE_VERSION import de.jrpie.android.launcher.preferences.theme.Background import de.jrpie.android.launcher.preferences.theme.ColorTheme diff --git a/app/src/main/java/de/jrpie/android/launcher/preferences/serialization/PreferenceSerializers.kt b/app/src/main/java/de/jrpie/android/launcher/preferences/serialization/PreferenceSerializers.kt index 4a745a2..041fe4d 100644 --- a/app/src/main/java/de/jrpie/android/launcher/preferences/serialization/PreferenceSerializers.kt +++ b/app/src/main/java/de/jrpie/android/launcher/preferences/serialization/PreferenceSerializers.kt @@ -15,7 +15,7 @@ import kotlinx.serialization.json.Json class SetAppInfoPreferenceSerializer : PreferenceSerializer?, java.util.Set?> { @Throws(PreferenceSerializationException::class) - override fun serialize(value: java.util.Set?): java.util.Set? { + override fun serialize(value: java.util.Set?): java.util.Set { return value?.map(AppInfo::serialize)?.toHashSet() as java.util.Set } @@ -29,7 +29,7 @@ class SetAppInfoPreferenceSerializer : class MapAppInfoStringPreferenceSerializer : PreferenceSerializer?, java.util.Set?> { - @Serializable() + @Serializable private class MapEntry(val key: AppInfo, val value: String) @Throws(PreferenceSerializationException::class) diff --git a/app/src/main/java/de/jrpie/android/launcher/ui/HomeActivity.kt b/app/src/main/java/de/jrpie/android/launcher/ui/HomeActivity.kt index 42dc01b..b41eff3 100644 --- a/app/src/main/java/de/jrpie/android/launcher/ui/HomeActivity.kt +++ b/app/src/main/java/de/jrpie/android/launcher/ui/HomeActivity.kt @@ -216,7 +216,7 @@ class HomeActivity : UIObject, AppCompatActivity(), if (e1 == null) return false - val displayMetrics: DisplayMetrics = DisplayMetrics() + val displayMetrics = DisplayMetrics() windowManager.defaultDisplay.getMetrics(displayMetrics) val width = displayMetrics.widthPixels diff --git a/app/src/main/java/de/jrpie/android/launcher/ui/list/ListActivity.kt b/app/src/main/java/de/jrpie/android/launcher/ui/list/ListActivity.kt index 902e561..c4ecded 100644 --- a/app/src/main/java/de/jrpie/android/launcher/ui/list/ListActivity.kt +++ b/app/src/main/java/de/jrpie/android/launcher/ui/list/ListActivity.kt @@ -11,6 +11,7 @@ import android.view.View import android.widget.Toast import android.window.OnBackInvokedDispatcher import androidx.appcompat.app.AppCompatActivity +import androidx.appcompat.content.res.AppCompatResources import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentPagerAdapter @@ -52,7 +53,8 @@ class ListActivity : AppCompatActivity(), UIObject { private fun updateLockIcon(locked: Boolean) { binding.listLock.setImageDrawable( - getDrawable( + AppCompatResources.getDrawable( + this, if (locked) { R.drawable.baseline_lock_24 } else { diff --git a/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/ContextMenuActions.kt b/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/ContextMenuActions.kt index e09111e..9636dc2 100644 --- a/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/ContextMenuActions.kt +++ b/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/ContextMenuActions.kt @@ -33,7 +33,7 @@ fun AppInfo.openSettings( } fun AppInfo.uninstall(activity: android.app.Activity) { - val packageName = this.packageName.toString() + val packageName = this.packageName val userId = this.user Log.i(LOG_TAG, "uninstalling $this") diff --git a/app/src/main/java/de/jrpie/android/launcher/ui/settings/meta/SettingsFragmentMeta.kt b/app/src/main/java/de/jrpie/android/launcher/ui/settings/meta/SettingsFragmentMeta.kt index fd3a738..70a225d 100644 --- a/app/src/main/java/de/jrpie/android/launcher/ui/settings/meta/SettingsFragmentMeta.kt +++ b/app/src/main/java/de/jrpie/android/launcher/ui/settings/meta/SettingsFragmentMeta.kt @@ -45,21 +45,6 @@ class SettingsFragmentMeta : Fragment(), UIObject { super.onStart() } - // Rate App - // Just copied code from https://stackoverflow.com/q/10816757/12787264 - // that is how we write good software ^^ - - private fun rateIntentForUrl(url: String): Intent { - val intent = Intent( - Intent.ACTION_VIEW, - Uri.parse(String.format("%s?id=%s", url, this.requireContext().packageName)) - ) - var flags = Intent.FLAG_ACTIVITY_NO_HISTORY or Intent.FLAG_ACTIVITY_MULTIPLE_TASK - flags = flags or Intent.FLAG_ACTIVITY_NEW_DOCUMENT - intent.addFlags(flags) - return intent - } - override fun setOnClicks() { binding.settingsMetaButtonViewTutorial.setOnClickListener { diff --git a/app/src/main/java/de/jrpie/android/launcher/ui/tutorial/tabs/TutorialFragmentConcept.kt b/app/src/main/java/de/jrpie/android/launcher/ui/tutorial/tabs/TutorialFragmentConcept.kt index 26d4141..f0fd233 100644 --- a/app/src/main/java/de/jrpie/android/launcher/ui/tutorial/tabs/TutorialFragmentConcept.kt +++ b/app/src/main/java/de/jrpie/android/launcher/ui/tutorial/tabs/TutorialFragmentConcept.kt @@ -21,7 +21,7 @@ class TutorialFragmentConcept : Fragment(), UIObject { inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { - val binding = TutorialConceptBinding.inflate(inflater, container, false) + binding = TutorialConceptBinding.inflate(inflater, container, false) binding.tutorialConceptBadgeVersion.text = BuildConfig.VERSION_NAME return binding.root } diff --git a/app/src/main/res/layout/list.xml b/app/src/main/res/layout/list.xml index 4fd6962..e68c895 100644 --- a/app/src/main/res/layout/list.xml +++ b/app/src/main/res/layout/list.xml @@ -32,7 +32,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" - android:layout_marginLeft="8dp" + android:layout_marginEnd="8dp" android:contentDescription="@string/settings" android:gravity="center" android:paddingLeft="16sp" @@ -62,7 +62,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="8dp" - android:layout_marginRight="8dp" + android:layout_marginStart="8dp" android:gravity="center" android:includeFontPadding="true" android:paddingLeft="16sp" diff --git a/app/src/main/res/layout/list_apps_row_variant_text.xml b/app/src/main/res/layout/list_apps_row_variant_text.xml index 053568b..700dd7c 100644 --- a/app/src/main/res/layout/list_apps_row_variant_text.xml +++ b/app/src/main/res/layout/list_apps_row_variant_text.xml @@ -25,6 +25,7 @@ android:gravity="start|center_horizontal" android:padding="5dp" android:paddingStart="20dp" + android:paddingEnd="20dp" android:text="" android:textSize="20sp" app:layout_constraintBottom_toBottomOf="parent" diff --git a/app/src/main/res/layout/list_other_row.xml b/app/src/main/res/layout/list_other_row.xml index aea51e1..530cc9e 100644 --- a/app/src/main/res/layout/list_other_row.xml +++ b/app/src/main/res/layout/list_other_row.xml @@ -22,9 +22,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="60sp" - android:layout_marginLeft="60sp" android:layout_marginEnd="5dp" - android:layout_marginRight="5dp" android:gravity="start" android:text="" android:textSize="20sp" diff --git a/app/src/main/res/layout/settings.xml b/app/src/main/res/layout/settings.xml index f7d5c6e..668358a 100644 --- a/app/src/main/res/layout/settings.xml +++ b/app/src/main/res/layout/settings.xml @@ -39,7 +39,7 @@ android:id="@+id/settings_close" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginRight="8dp" + android:layout_marginEnd="8dp" android:gravity="center" android:includeFontPadding="true" android:paddingLeft="16sp" @@ -55,7 +55,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" - android:layout_marginLeft="8dp" + android:layout_marginEnd="8dp" android:gravity="center" android:includeFontPadding="true" android:paddingLeft="16sp" diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index 6f2acb4..4dd969d 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -2,4 +2,5 @@ + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index 6f2acb4..8b20aae 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -2,4 +2,5 @@ + \ No newline at end of file