Set mutability flag for download service

Julien LepillerThu Jul 28 19:31:08+0200 2022

e0cf71c

Set mutability flag for download service

CHANGELOG.md

99
1010
### Bug Fixes
1111
12+
* Dictionary download crashed on Android 12+.
1213
* Dictionaries are now downloaded in app data instead of cache
1314
* Dictionary update no longer marks the dictionary as not downloaded
1415

app/src/main/java/eu/lepiller/nani/DictionaryDownloadService.java

33
import android.app.PendingIntent;
44
import android.app.Service;
55
import android.content.Intent;
6+
import android.os.Build;
67
import android.os.Handler;
78
import android.os.IBinder;
89
import android.os.Looper;

103104
        PendingIntent pendingIntent;
104105
        if(name == null) {
105106
            Intent notificationIntent = new Intent(this, DictionaryActivity.class);
106-
            pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
107+
            pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent,
108+
                    (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)? PendingIntent.FLAG_IMMUTABLE: 0);
107109
            builder.setContentTitle(getString(R.string.downloading));
108110
        } else {
109111
            Intent notificationIntent = new Intent(this, DictionaryDownloadActivity.class);
110112
            notificationIntent.putExtra(DictionaryDownloadActivity.EXTRA_DICTIONARY, name);
111-
            pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
113+
            pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent,
114+
                    (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)? PendingIntent.FLAG_IMMUTABLE: 0);
112115
            builder.setContentTitle(name);
113116
        }
114117