1
1
package com.micewine.emu.fragments
2
2
3
+ import android.app.Activity
3
4
import android.os.Bundle
5
+ import android.util.DisplayMetrics
4
6
import android.view.LayoutInflater
5
7
import android.view.View
6
8
import android.view.ViewGroup
7
9
import androidx.fragment.app.Fragment
8
10
import androidx.recyclerview.widget.GridLayoutManager
9
11
import androidx.recyclerview.widget.RecyclerView
10
12
import com.micewine.emu.R
13
+ import com.micewine.emu.activities.GeneralSettingsActivity.Companion.DISPLAY_MODE
14
+ import com.micewine.emu.activities.GeneralSettingsActivity.Companion.DISPLAY_MODE_DEFAULT_VALUE
11
15
import com.micewine.emu.activities.GeneralSettingsActivity.Companion.DISPLAY_RESOLUTION
16
+ import com.micewine.emu.activities.GeneralSettingsActivity.Companion.DISPLAY_RESOLUTION_DEFAULT_VALUE
12
17
import com.micewine.emu.activities.GeneralSettingsActivity.Companion.SPINNER
13
18
import com.micewine.emu.activities.GeneralSettingsActivity.Companion.SWITCH
14
- import com.micewine.emu.activities.MainActivity.Companion.CPU_COUNTER_KEY
15
- import com.micewine.emu.activities.MainActivity.Companion.ENABLE_DEBUG_INFO_KEY
16
- import com.micewine.emu.activities.MainActivity.Companion.RAM_COUNTER_KEY
19
+ import com.micewine.emu.activities.MainActivity.Companion.CPU_COUNTER
20
+ import com.micewine.emu.activities.MainActivity.Companion.CPU_COUNTER_DEFAULT_VALUE
21
+ import com.micewine.emu.activities.MainActivity.Companion.ENABLE_DEBUG_INFO
22
+ import com.micewine.emu.activities.MainActivity.Companion.ENABLE_DEBUG_INFO_DEFAULT_VALUE
23
+ import com.micewine.emu.activities.MainActivity.Companion.RAM_COUNTER
24
+ import com.micewine.emu.activities.MainActivity.Companion.RAM_COUNTER_DEFAULT_VALUE
17
25
import com.micewine.emu.adapters.AdapterSettingsPreferences
18
26
import com.micewine.emu.adapters.AdapterSettingsPreferences.SettingsListSpinner
19
27
@@ -40,27 +48,72 @@ class DisplaySettingsFragment : Fragment() {
40
48
}
41
49
42
50
private fun setAdapter () {
43
- recyclerView?.setAdapter(AdapterSettingsPreferences (settingsList, requireActivity()))
51
+ recyclerView?.setAdapter(AdapterSettingsPreferences (settingsList, requireActivity(), recyclerView !! ))
44
52
45
53
settingsList.clear()
46
54
47
- addToAdapter(R .string.display_resolution_title, R .string.display_resolution_description, arrayOf(
48
- " 640x480" , " 800x600" ,
49
- " 960x540" , " 1024x768" ,
50
- " 1280x720" , " 1440x720" ,
51
- " 1600x900" , " 1800x900" ,
52
- " 1920x1080" , " 2160x1080"
55
+ addToAdapter(R .string.display_mode_title, R .string.display_mode_description, arrayOf(
56
+ " 16:9" , " 4:3" , " Native"
53
57
),
54
- SPINNER , " 1280x720" , DISPLAY_RESOLUTION )
58
+ SPINNER , DISPLAY_MODE_DEFAULT_VALUE , DISPLAY_MODE )
59
+ addToAdapter(R .string.display_resolution_title, R .string.display_resolution_description, null ,
60
+ SPINNER , DISPLAY_RESOLUTION_DEFAULT_VALUE , DISPLAY_RESOLUTION )
55
61
addToAdapter(R .string.enable_ram_counter, R .string.enable_ram_counter_description, null ,
56
- SWITCH , " true " , RAM_COUNTER_KEY )
62
+ SWITCH , RAM_COUNTER_DEFAULT_VALUE , RAM_COUNTER )
57
63
addToAdapter(R .string.enable_cpu_counter, R .string.enable_cpu_counter_description, null ,
58
- SWITCH , " false " , CPU_COUNTER_KEY )
64
+ SWITCH , CPU_COUNTER_DEFAULT_VALUE , CPU_COUNTER )
59
65
addToAdapter(R .string.enable_debug_info, R .string.enable_debug_info_description, null ,
60
- SWITCH , " true" , ENABLE_DEBUG_INFO_KEY )
66
+ SWITCH , ENABLE_DEBUG_INFO_DEFAULT_VALUE , ENABLE_DEBUG_INFO )
67
+ }
68
+
69
+ private fun addToAdapter (titleId : Int , descriptionId : Int , valuesArray : Array <String >? , type : Int , defaultValue : Any , keyId : String ) {
70
+ settingsList.add(SettingsListSpinner (titleId, descriptionId, valuesArray, type, defaultValue.toString(), keyId))
61
71
}
62
72
63
- private fun addToAdapter (titleId : Int , descriptionId : Int , valuesArray : Array <String >? , type : Int , defaultValue : String , keyId : String ) {
64
- settingsList.add(SettingsListSpinner (titleId, descriptionId, valuesArray, type, defaultValue, keyId))
73
+ companion object {
74
+ val resolutions16_9 = arrayOf(
75
+ " 640x360" , " 854x480" ,
76
+ " 960x540" , " 1280x720" ,
77
+ " 1366x768" , " 1600x900" ,
78
+ " 1920x1080" , " 2560x1440" ,
79
+ " 3840x2160"
80
+ )
81
+
82
+ val resolutions4_3 = arrayOf(
83
+ " 640x480" , " 800x600" ,
84
+ " 1024x768" , " 1280x960" ,
85
+ " 1400x1050" , " 1600x1200"
86
+ )
87
+
88
+ @Suppress(" DEPRECATION" )
89
+ private fun getNativeResolution (activity : Activity ): String {
90
+ val displayMetrics = DisplayMetrics ()
91
+ activity.windowManager.defaultDisplay.getRealMetrics(displayMetrics)
92
+ return " ${displayMetrics.widthPixels} x${displayMetrics.heightPixels} "
93
+ }
94
+
95
+ private fun getPercentOfResolution (original : String , percent : Int ): String {
96
+ val resolution = original.split(" x" )
97
+ val width = resolution[0 ].toInt() * percent / 100
98
+ val height = resolution[1 ].toInt() * percent / 100
99
+
100
+ return " ${width} x${height} "
101
+ }
102
+
103
+ fun getNativeResolutions (activity : Activity ): List <String > {
104
+ val parsedResolutions = mutableListOf<String >()
105
+ val nativeResolution = getNativeResolution(activity)
106
+
107
+ parsedResolutions.add(nativeResolution)
108
+ parsedResolutions.add(getPercentOfResolution(nativeResolution, 90 ))
109
+ parsedResolutions.add(getPercentOfResolution(nativeResolution, 80 ))
110
+ parsedResolutions.add(getPercentOfResolution(nativeResolution, 70 ))
111
+ parsedResolutions.add(getPercentOfResolution(nativeResolution, 60 ))
112
+ parsedResolutions.add(getPercentOfResolution(nativeResolution, 50 ))
113
+ parsedResolutions.add(getPercentOfResolution(nativeResolution, 40 ))
114
+ parsedResolutions.add(getPercentOfResolution(nativeResolution, 30 ))
115
+
116
+ return parsedResolutions
117
+ }
65
118
}
66
119
}
0 commit comments