mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Less janky enum iteration
This commit is contained in:
		| @@ -6,7 +6,7 @@ import android.content.res.Resources | ||||
| import androidx.annotation.DrawableRes | ||||
| import androidx.annotation.StringRes | ||||
| import eu.kanade.tachiyomi.R | ||||
| import kotlin.math.max | ||||
| import eu.kanade.tachiyomi.util.lang.next | ||||
|  | ||||
| enum class OrientationType(val prefValue: Int, val flag: Int, @StringRes val stringRes: Int, @DrawableRes val iconRes: Int) { | ||||
|     FREE(1, ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED, R.string.rotation_free, R.drawable.ic_screen_rotation_24dp), | ||||
| @@ -31,9 +31,13 @@ enum class OrientationType(val prefValue: Int, val flag: Int, @StringRes val str | ||||
|         } | ||||
|  | ||||
|         fun getNextOrientation(preference: Int, resources: Resources): OrientationType { | ||||
|             // There's only 4 options (1 to 4) | ||||
|             val newOrientation = max(1, (preference + 1) % 5) | ||||
|             return fromPreference(newOrientation, resources) | ||||
|             val current = if (preference == 2) { | ||||
|                 // Avoid issue due to 2 types having the same prefValue | ||||
|                 LOCKED_LANDSCAPE | ||||
|             } else { | ||||
|                 fromPreference(preference, resources) | ||||
|             } | ||||
|             return current.next() | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -2,7 +2,7 @@ package eu.kanade.tachiyomi.ui.reader.setting | ||||
|  | ||||
| import androidx.annotation.StringRes | ||||
| import eu.kanade.tachiyomi.R | ||||
| import kotlin.math.max | ||||
| import eu.kanade.tachiyomi.util.lang.next | ||||
|  | ||||
| enum class ReadingModeType(val prefValue: Int, @StringRes val stringRes: Int) { | ||||
|     DEFAULT(0, R.string.default_viewer), | ||||
| @@ -17,9 +17,8 @@ enum class ReadingModeType(val prefValue: Int, @StringRes val stringRes: Int) { | ||||
|         fun fromPreference(preference: Int): ReadingModeType = values().find { it.prefValue == preference } ?: DEFAULT | ||||
|  | ||||
|         fun getNextReadingMode(preference: Int): ReadingModeType { | ||||
|             // There's only 6 options (0 to 5) | ||||
|             val newReadingMode = max(0, (preference + 1) % 6) | ||||
|             return fromPreference(newReadingMode) | ||||
|             val current = fromPreference(preference) | ||||
|             return current.next() | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,7 @@ | ||||
| package eu.kanade.tachiyomi.util.lang | ||||
|  | ||||
| inline fun <reified T : Enum<T>> T.next(): T { | ||||
|     val values = enumValues<T>() | ||||
|     val nextOrdinal = (ordinal + 1) % values.size | ||||
|     return values[nextOrdinal] | ||||
| } | ||||
		Reference in New Issue
	
	Block a user