Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c45054b8 authored by Mark Harman's avatar Mark Harman
Browse files

Fix Google Play crash in 1.43, either main_activity or getMainUI() null from fragment.

parent 3095ed45
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -41,6 +41,10 @@
<p>&lt; <small><a href="index.html">Main Page.</a></small></p>

<pre>
Version 1.43.1 (Work in progress)

FIXED   Fixed some crashes.

Version 1.43 (2018/04/10)

FIXED   Fixed crash when sharing images (if not using Storage Access Framework) on some Android 7+
+11 −1
Original line number Diff line number Diff line
@@ -1318,7 +1318,17 @@ public class MainActivity extends Activity implements AudioListener.AudioListene
		if( this.preview.getCameraController() != null ) {
			bundle.putString("parameters_string", preview.getCameraController().getParametersString());
		}
		putBundleExtra(bundle, "antibanding", this.preview.getSupportedAntiBanding());
		List<String> antibanding = this.preview.getSupportedAntiBanding();
		putBundleExtra(bundle, "antibanding", antibanding);
		if( antibanding != null ) {
			String [] entries_arr = new String[antibanding.size()];
			int i=0;
			for(String value: antibanding) {
				entries_arr[i] = getMainUI().getEntryForAntiBanding(value);
				i++;
			}
			bundle.putStringArray("antibanding_entries", entries_arr);
		}

		List<CameraController.Size> preview_sizes = this.preview.getSupportedPreviewSizes();
		if( preview_sizes != null ) {
+3 −5
Original line number Diff line number Diff line
@@ -111,12 +111,10 @@ public class MyPreferenceFragment extends PreferenceFragment implements OnShared

		String [] antibanding_values = bundle.getStringArray("antibanding");
		if( antibanding_values != null && antibanding_values.length > 0 ) {
			MainActivity main_activity = (MainActivity)MyPreferenceFragment.this.getActivity();
			String [] entries = new String[antibanding_values.length];
			for(int i=0;i<antibanding_values.length;i++) {
				entries[i] = main_activity.getMainUI().getEntryForAntiBanding(antibanding_values[i]);
			String [] antibanding_entries = bundle.getStringArray("antibanding_entries");
			if( antibanding_entries != null && antibanding_entries.length == antibanding_values.length ) { // should always be true here, but just in case
				readFromBundle(antibanding_values, antibanding_entries, PreferenceKeys.AntiBandingPreferenceKey, CameraController.ANTIBANDING_DEFAULT, "preference_category_camera_quality");
			}
			readFromBundle(antibanding_values, entries, PreferenceKeys.AntiBandingPreferenceKey, CameraController.ANTIBANDING_DEFAULT, "preference_category_camera_quality");
		}

		final boolean supports_face_detection = bundle.getBoolean("supports_face_detection");