11package net .kdt .pojavlaunch .prefs .screens ;
22
3- import static net .kdt .pojavlaunch .prefs .LauncherPreferences .PREF_RENDERER ;
43
4+ import static net .kdt .pojavlaunch .prefs .LauncherPreferences .PREF_RENDERER ;
55import android .content .SharedPreferences ;
66import android .os .Build ;
77import android .os .Bundle ;
8- import android .net .Uri ;
9-
10- import androidx .annotation .NonNull ;
11- import androidx .annotation .Nullable ;
12- import androidx .appcompat .app .AlertDialog ;
138
149import androidx .preference .ListPreference ;
1510import androidx .preference .SwitchPreference ;
1611import androidx .preference .SwitchPreferenceCompat ;
1712import androidx .preference .Preference ;
18- import android . text . InputFilter ;
13+
1914import android .util .Log ;
2015import android .view .LayoutInflater ;
2116import android .view .View ;
2217import android .widget .ArrayAdapter ;
23- import android .widget .AdapterView ;
2418import android .widget .EditText ;
2519import android .widget .Spinner ;
2620import android .widget .Switch ;
27- import android .widget .Toast ;
2821
29- import net .kdt .pojavlaunch .PojavApplication ;
3022import net .kdt .pojavlaunch .R ;
3123import net .kdt .pojavlaunch .Tools ;
3224import net .kdt .pojavlaunch .prefs .CustomSeekBarPreference ;
3325import net .kdt .pojavlaunch .prefs .LauncherPreferences ;
26+ import net .kdt .pojavlaunch .utils .FileUtils ;
27+
3428import com .kdt .ui .dialog .*;
3529
30+ import java .io .File ;
31+ import java .io .IOException ;
3632import java .util .ArrayList ;
37- import java .util .List ;
38- import java .util .Set ;
33+ import java .util .LinkedHashMap ;
34+ import java .util .Map ;
3935
4036/**
4137 * Fragment for any settings video related
@@ -100,7 +96,7 @@ public void onSharedPreferenceChanged(SharedPreferences p, String s) {
10096 computeVisibility ();
10197 }
10298
103- private void computeVisibility (){
99+ private void computeVisibility () {
104100 requirePreference ("force_vsync" , SwitchPreferenceCompat .class )
105101 .setVisible (LauncherPreferences .PREF_USE_ALTERNATE_SURFACE );
106102 }
@@ -160,7 +156,7 @@ private void mgRendererSettings() {
160156 .setConfirmListener (R .string .alertdialog_done , customView -> {
161157 String cacheSize = maxGlslCacheSize .getText ().toString ();
162158
163- if (cacheSize .isEmpty ()) {
159+ if (cacheSize .isEmpty ()) {
164160 maxGlslCacheSize .setError (getString (R .string .global_error_field_empty ));
165161 return false ;
166162
@@ -183,8 +179,8 @@ private void mgRendererSettings() {
183179 }
184180
185181 if (currentCacheSize <= 0 && currentCacheSize != -1 ) {
186- maxGlslCacheSize .setError (getString (R .string .mg_option_glsl_cache_error_range ));
187- return false ;
182+ maxGlslCacheSize .setError (getString (R .string .mg_option_glsl_cache_error_range ));
183+ return false ;
188184 }
189185 LauncherPreferences .MG_MULTIDRAWMODE_OPTION = Integer .toString (enableCompatibleMode .getSelectedItemPosition ());
190186 LauncherPreferences .MG_GLSL_CACHE_SIZE = cacheSize ;
@@ -200,11 +196,37 @@ private void mgRendererSettings() {
200196 .putString ("mg_ext_gl43" , LauncherPreferences .MG_EXT_GL43 )
201197 .putString ("mg_ext_compute_shader" , LauncherPreferences .MG_EXT_CS )
202198 .apply ();
199+ try {
200+ writeRendererSettings ();
201+ } catch (Exception e ) {
202+ throw new IOException (e );
203+ }
204+
203205 return true ;
204206 })
205207 .setCancelListener (R .string .alertdialog_cancel , customView -> true )
206208 .setDraggable (true )
207209 .build ()
208210 .show ();
209211 }
212+ private void writeRendererSettings () throws IOException {
213+ Map <String , Integer > MGConfigMap = new LinkedHashMap <>();
214+
215+ MGConfigMap .put ("enableAngle" , Integer .parseInt (LauncherPreferences .MG_ANGLE_OPTION ));
216+ MGConfigMap .put ("enableNoError" , Integer .parseInt (LauncherPreferences .MG_NOERROR_OPTION ));
217+ MGConfigMap .put ("enableExtGL43" , Integer .parseInt (LauncherPreferences .MG_EXT_GL43 ));
218+ MGConfigMap .put ("enableExtComputeShader" , Integer .parseInt (LauncherPreferences .MG_EXT_CS ));
219+ MGConfigMap .put ("maxGlslCacheSize" , Integer .parseInt (LauncherPreferences .MG_GLSL_CACHE_SIZE ));
220+ MGConfigMap .put ("multidrawMode" , Integer .parseInt (LauncherPreferences .MG_MULTIDRAWMODE_OPTION ));
221+
222+ File configFile = new File (Tools .DIR_DATA + "/MobileGlues" , "config.json" );
223+ FileUtils .ensureParentDirectory (configFile );
224+ try {
225+ Tools .write (configFile .getAbsolutePath (),Tools .GLOBAL_GSON .toJson (MGConfigMap ));
226+ } catch (IOException e ) {
227+ throw new RuntimeException (e );
228+ }
229+
230+
231+ }
210232}
0 commit comments