Skip to content

Commit

Permalink
Adds option to choose the alignment of apps
Browse files Browse the repository at this point in the history
  • Loading branch information
khwolf committed Oct 19, 2023
1 parent b9a5a15 commit 20b43fa
Show file tree
Hide file tree
Showing 8 changed files with 107 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,11 @@ class HomeAdapter(private val listener: OnLaunchAppListener)
: RecyclerView.Adapter<HomeAdapter.ViewHolder>() {

private var apps: List<HomeApp> = listOf()
private var gravity: Int = 3

constructor(listener: OnLaunchAppListener, alignment: Int) : this(listener) {
setAlignment(alignment)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.main_fragment_list_item, parent, false)
Expand All @@ -24,6 +28,7 @@ class HomeAdapter(private val listener: OnLaunchAppListener)
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = apps.elementAt(position)
holder.mLabelView.text = item.appNickname ?: item.appName
holder.mLabelView.gravity = gravity
holder.mLabelView.setOnClickListener {
listener.onLaunch(item, it)
}
Expand All @@ -36,6 +41,20 @@ class HomeAdapter(private val listener: OnLaunchAppListener)
notifyDataSetChanged()
}

fun getGravity(): Int = gravity

fun setGravity(gravity: Int) {
this.gravity = gravity
}

fun setAlignment(alignment: Int) {
if (alignment == 2) // right
gravity = 5
else if (alignment == 1) // center
gravity = 1
else // left
gravity = 3
}

inner class ViewHolder(mView: View) : RecyclerView.ViewHolder(mView) {
val mLabelView: TextView = mView.findViewById(R.id.home_fragment_list_item_app_name)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.sduduzog.slimlauncher.ui.dialogs

import android.app.AlertDialog
import android.app.Dialog
import android.content.Context.MODE_PRIVATE
import android.content.SharedPreferences
import android.os.Bundle
import androidx.core.content.edit
import androidx.fragment.app.DialogFragment
import com.sduduzog.slimlauncher.R

class ChooseAlignmentDialog : DialogFragment() {

private lateinit var settings: SharedPreferences

override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val builder = AlertDialog.Builder(requireContext())
settings = requireContext().getSharedPreferences(getString(R.string.prefs_settings), MODE_PRIVATE)

val active = settings.getInt(getString(R.string.prefs_settings_alignment), 3)
builder.setTitle(R.string.choose_alignment_dialog_title)
builder.setSingleChoiceItems(R.array.alignment_format_array, active) { dialogInterface, i ->
dialogInterface.dismiss()
settings.edit {
putInt(getString(R.string.prefs_settings_alignment), i)
}

}
return builder.create()
}


companion object {
fun getInstance(): ChooseAlignmentDialog{
return ChooseAlignmentDialog()
}
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,13 @@ class HomeFragment : BaseFragment(), OnLaunchAppListener {

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val adapter1 = HomeAdapter(this)
val adapter2 = HomeAdapter(this)
val settingsKey = getString(R.string.prefs_settings)
val alignmentKey: String = getString(R.string.prefs_settings_alignment)
val preferences = requireContext().getSharedPreferences(settingsKey, Context.MODE_PRIVATE)
val alignment = preferences.getInt(alignmentKey, 3)

val adapter1 = HomeAdapter(this, alignment)
val adapter2 = HomeAdapter(this, alignment)
home_fragment_list.adapter = adapter1
home_fragment_list_exp.adapter = adapter2

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import androidx.navigation.Navigation
import com.sduduzog.slimlauncher.R
import com.sduduzog.slimlauncher.datasource.UnlauncherDataSource
import com.sduduzog.slimlauncher.ui.dialogs.ChangeThemeDialog
import com.sduduzog.slimlauncher.ui.dialogs.ChooseAlignmentDialog
import com.sduduzog.slimlauncher.ui.dialogs.ChooseTimeFormatDialog
import com.sduduzog.slimlauncher.utils.BaseFragment
import com.sduduzog.slimlauncher.utils.isActivityDefaultLauncher
Expand Down Expand Up @@ -52,6 +53,10 @@ class OptionsFragment : BaseFragment() {
val chooseTimeFormatDialog = ChooseTimeFormatDialog.getInstance()
chooseTimeFormatDialog.showNow(childFragmentManager, "TIME_FORMAT_CHOOSER")
}
options_fragment_choose_alignment.setOnClickListener {
val chooseAlignmentDialog = ChooseAlignmentDialog.getInstance()
chooseAlignmentDialog.showNow(childFragmentManager, "ALIGNMENT_CHOOSER")
}
options_fragment_toggle_status_bar.setOnClickListener {
val settings = requireContext().getSharedPreferences(getString(R.string.prefs_settings), MODE_PRIVATE)
val isHidden = settings.getBoolean(getString(R.string.prefs_settings_key_toggle_status_bar), false)
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout/main_fragment_list_item.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/home_fragment_list_item_app_name"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
Expand Down
26 changes: 20 additions & 6 deletions app/src/main/res/layout/options_fragment.xml
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,21 @@
android:text="@string/options_fragment_customise_apps"
android:textAppearance="@style/TextAppearance.AppCompat"
android:textSize="@dimen/_20ssp"
app:layout_constraintBottom_toTopOf="@+id/options_fragment_customize_quick_buttons"
app:layout_constraintBottom_toTopOf="@id/options_fragment_choose_alignment"
app:layout_constraintStart_toStartOf="@+id/options_fragment_toggle_status_bar"
app:layout_constraintTop_toBottomOf="@+id/options_fragment_toggle_status_bar" />
app:layout_constraintTop_toBottomOf="@id/options_fragment_toggle_status_bar" />

<TextView
android:id="@+id/options_fragment_choose_alignment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stateListAnimator="@xml/animate_scale"
android:text="@string/options_fragment_choose_alignment"
android:textAppearance="@style/TextAppearance.AppCompat"
android:textSize="@dimen/_20ssp"
app:layout_constraintBottom_toTopOf="@id/options_fragment_customize_quick_buttons"
app:layout_constraintStart_toStartOf="@+id/options_fragment_customise_apps"
app:layout_constraintTop_toBottomOf="@id/options_fragment_customise_apps" />

<TextView
android:id="@+id/options_fragment_customize_quick_buttons"
Expand All @@ -105,8 +117,9 @@
android:text="@string/options_fragment_customize_quick_buttons"
android:textAppearance="@style/TextAppearance.AppCompat"
android:textSize="@dimen/_20ssp"
app:layout_constraintStart_toStartOf="@+id/options_fragment_customise_apps"
app:layout_constraintTop_toBottomOf="@+id/options_fragment_customise_apps" />
app:layout_constraintBottom_toTopOf="@id/options_fragment_customize_app_drawer"
app:layout_constraintStart_toStartOf="@+id/options_fragment_choose_alignment"
app:layout_constraintTop_toBottomOf="@+id/options_fragment_choose_alignment" />

<TextView
android:id="@+id/options_fragment_customize_app_drawer"
Expand All @@ -119,7 +132,8 @@
android:textAppearance="@style/TextAppearance.AppCompat"
android:textSize="@dimen/_20ssp"
app:layout_constraintStart_toStartOf="@+id/options_fragment_customize_quick_buttons"
app:layout_constraintTop_toBottomOf="@+id/options_fragment_customize_quick_buttons" />
app:layout_constraintTop_toBottomOf="@+id/options_fragment_customize_quick_buttons"
/>

<androidx.appcompat.widget.SwitchCompat
android:id="@+id/options_fragment_auto_device_theme_wallpaper"
Expand All @@ -135,7 +149,7 @@
android:textAppearance="@style/TextAppearance.AppCompat"
android:textSize="@dimen/_18ssp"
app:layout_constraintTop_toBottomOf="@id/options_fragment_customize_app_drawer"
app:layout_constraintStart_toStartOf="parent"/>
app:layout_constraintStart_toStartOf="@+id/options_fragment_customize_app_drawer"/>
</androidx.constraintlayout.widget.ConstraintLayout>

</ScrollView>
7 changes: 7 additions & 0 deletions app/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@
<item>Verstecken</item>
</string-array>

<string-array name="alignment_format_array">
<item>Links</item>
<item>Mitte</item>
<item>Rechts</item>
</string-array>

<string name="choose_theme_dialog_title">Stil auswählen</string>
<string name="app_name">Unlauncher</string>
<string name="choose_time_format_dialog_title">Zeitformat</string>
Expand All @@ -34,6 +40,7 @@
<string name="options_fragment_customise_apps">Apps einstellen</string>
<string name="options_fragment_device_settings">Geräteeinstellungen</string>
<string name="add_apps_fragment_search_apps">Appsuche</string>
<string name="options_fragment_choose_alignment">Apps ausrichten</string>
<string name="options_fragment_customize_quick_buttons">Knöpfe einstellen</string>
<string name="options_fragment_customize_app_drawer">Appschublade</string>
<string name="options_fragment_toggle_status_bar">Statusleiste umschalten</string>
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,16 +28,24 @@
<item>Hide</item>
</string-array>

<string-array name="alignment_format_array">
<item>left</item>
<item>center</item>
<item>right</item>
</string-array>

<string name="prefs_settings" translatable="false">settings</string>
<string name="prefs_settings_key_theme" translatable="false">key_theme</string>
<string name="prefs_settings_key_time_format" translatable="false">time_format</string>
<string name="prefs_settings_key_toggle_status_bar" translatable="false">hide_status_bar</string>
<string name="prefs_settings_alignment" translatable="false">alignment</string>
<string name="choose_time_format_dialog_title">Choose Time Format</string>
<string name="main_fragment_options">Options</string>
<string name="options_fragment_device_settings">Device Settings</string>
<string name="options_fragment_change_theme">Change Theme</string>
<string name="options_fragment_choose_time_format">Choose Time Format</string>
<string name="options_fragment_customise_apps">Customise Apps</string>
<string name="options_fragment_choose_alignment">Choose Alignment</string>
<string name="options_fragment_customize_quick_buttons">Customise Quick Buttons</string>
<string name="options_fragment_customize_app_drawer">Customise Drawer</string>
<string name="options_fragment_toggle_status_bar">Toggle Status Bar</string>
Expand All @@ -62,5 +70,6 @@
<string name="hide_app">Hide App</string>
<string name="rename_app">Rename App</string>
<string name="uninstall">Uninstall</string>
<string name="choose_alignment_dialog_title">Choose alignment</string>

</resources>

0 comments on commit 20b43fa

Please sign in to comment.