update fork #128

Manually merged
tristan merged 181 commits from mirror/monocles_chat_clean:master into master 2026-01-23 14:02:38 +01:00
Showing only changes of commit 58e3785b09 - Show all commits

Allow editing chat background images

Arne 2026-01-04 12:53:22 +01:00

View file

@ -1,9 +1,11 @@
package eu.siacs.conversations.ui.fragment.settings;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.preference.Preference;
import android.widget.Toast;
@ -15,8 +17,8 @@ import com.google.android.material.color.DynamicColors;
import java.io.File;
import eu.siacs.conversations.AppSettings;
import eu.siacs.conversations.Conversations;
import eu.siacs.conversations.R;
import eu.siacs.conversations.medialib.activities.EditActivity;
import eu.siacs.conversations.ui.activity.SettingsActivity;
import eu.siacs.conversations.ui.util.SettingsUtils;
import eu.siacs.conversations.utils.ChatBackgroundHelper;
@ -24,6 +26,8 @@ import eu.siacs.conversations.utils.ThemeHelper;
public class InterfaceSettingsFragment extends XmppPreferenceFragment {
private static final int REQUEST_EDIT_BACKGROUND = 9124;
@Override
public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
setPreferencesFromResource(R.xml.preferences_interface, rootKey);
@ -145,12 +149,33 @@ public class InterfaceSettingsFragment extends XmppPreferenceFragment {
activity.getClass().getName(), SettingsActivity.class.getName()));
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
if (requestCode == ChatBackgroundHelper.REQUEST_IMPORT_BACKGROUND) {
final Uri imageUri = data == null ? null : data.getData();
if (imageUri != null) {
final Intent editIntent = new Intent(getActivity(), EditActivity.class);
editIntent.setData(imageUri);
editIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivityForResult(editIntent, REQUEST_EDIT_BACKGROUND);
return;
}
} else if (requestCode == REQUEST_EDIT_BACKGROUND) {
Uri uri = data != null ? (Uri) data.getParcelableExtra(EditActivity.KEY_EDITED_URI) : null;
if (uri == null && data != null) {
uri = data.getData();
}
ChatBackgroundHelper.onActivityResult(requireSettingsActivity(), requestCode, resultCode, data, null);
if (uri != null) {
Intent resultIntent = new Intent();
resultIntent.setData(uri);
ChatBackgroundHelper.onActivityResult(requireSettingsActivity(), ChatBackgroundHelper.REQUEST_IMPORT_BACKGROUND, resultCode, resultIntent, null);
}
return;
}
}
super.onActivityResult(requestCode, resultCode, data);
}
@Override