Target Android 12

pull/1632/head
Alex Baker 3 years ago
parent 944db29a19
commit 94d4037439

@ -60,8 +60,8 @@ android {
applicationId = "org.tasks"
versionCode = 111007
versionName = "11.10.2"
targetSdkVersion(Versions.targetSdk)
minSdkVersion(Versions.minSdk)
targetSdk = Versions.targetSdk
minSdk = Versions.minSdk
testInstrumentationRunner = "org.tasks.TestRunner"
kapt {

@ -44,7 +44,10 @@ class LocationServiceGooglePlay @Inject constructor(
context,
0,
Intent(context, GoogleGeofenceTransitionIntentService.Broadcast::class.java),
/*PendingIntent.FLAG_MUTABLE or */PendingIntent.FLAG_UPDATE_CURRENT
if (atLeastS())
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
else
PendingIntent.FLAG_UPDATE_CURRENT
)
)
}

@ -10,6 +10,7 @@
<!-- ********************* -->
<!-- maps and place search -->
<!-- ********************* -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- ************************ -->

@ -159,6 +159,10 @@ public class AndroidUtilities {
return VERSION.SDK_INT >= VERSION_CODES.R;
}
public static boolean atLeastS() {
return VERSION.SDK_INT >= VERSION_CODES.S;
}
public static void assertMainThread() {
if (BuildConfig.DEBUG && !isMainThread()) {
throw new IllegalStateException("Should be called from main thread");

@ -7,10 +7,10 @@ import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import com.todoroo.andlib.utility.DateUtilities;
import com.todoroo.astrid.activity.MainActivity;
import dagger.hilt.android.AndroidEntryPoint;
import javax.inject.Inject;
import org.tasks.R;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.ThemedInjectingAppCompatActivity;
@ -20,6 +20,10 @@ import org.tasks.scheduling.AlarmManager;
import org.tasks.scheduling.CalendarNotificationIntentService;
import org.tasks.themes.ThemeAccent;
import javax.inject.Inject;
import dagger.hilt.android.AndroidEntryPoint;
@AndroidEntryPoint
public class CalendarReminderActivity extends ThemedInjectingAppCompatActivity {
@ -152,8 +156,12 @@ public class CalendarReminderActivity extends ThemedInjectingAppCompatActivity {
Uri.parse(CalendarNotificationIntentService.URI_PREFIX_POSTPONE + "://" + eventId));
PendingIntent pendingIntent =
PendingIntent.getBroadcast(
this, CalendarAlarmReceiver.REQUEST_CODE_CAL_REMINDER, eventAlarm, 0);
PendingIntent.getBroadcast(
this,
CalendarAlarmReceiver.REQUEST_CODE_CAL_REMINDER,
eventAlarm,
PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT
);
alarmManager.cancel(pendingIntent);

@ -65,7 +65,12 @@ class TimerPlugin @Inject constructor(
} else {
val filter = createFilter(context)
val notifyIntent = TaskIntents.getTaskListIntent(context, filter)
val pendingIntent = PendingIntent.getActivity(context, Constants.NOTIFICATION_TIMER, notifyIntent, 0)
val pendingIntent = PendingIntent.getActivity(
context,
Constants.NOTIFICATION_TIMER,
notifyIntent,
PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
)
val r = context.resources
val appName = r.getString(R.string.app_name)
val text = r.getString(

@ -6,6 +6,7 @@ import android.content.Context
import android.content.Intent
import android.location.Location
import android.net.Uri
import com.todoroo.andlib.utility.AndroidUtilities.atLeastS
import dagger.hilt.android.qualifiers.ApplicationContext
import org.tasks.data.MergedGeofence
import org.tasks.data.Place
@ -51,13 +52,16 @@ class LocationServiceAndroid @Inject constructor(
}
private fun createPendingIntent(place: Long) =
PendingIntent.getBroadcast(
context,
0,
Intent(context, AndroidGeofenceTransitionIntentService.Broadcast::class.java)
.setData(Uri.parse("tasks://geofence/$place")),
/*PendingIntent.FLAG_MUTABLE or */PendingIntent.FLAG_UPDATE_CURRENT
)
PendingIntent.getBroadcast(
context,
0,
Intent(context, AndroidGeofenceTransitionIntentService.Broadcast::class.java)
.setData(Uri.parse("tasks://geofence/$place")),
if (atLeastS())
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
else
PendingIntent.FLAG_UPDATE_CURRENT
)
companion object {
private val TWO_MINUTES = TimeUnit.MINUTES.toMillis(2)

@ -11,6 +11,7 @@ import android.view.View
import android.widget.RemoteViews
import androidx.annotation.ColorInt
import androidx.core.graphics.ColorUtils
import com.todoroo.andlib.utility.AndroidUtilities.atLeastS
import com.todoroo.astrid.api.Filter
import dagger.hilt.android.AndroidEntryPoint
import dagger.hilt.android.qualifiers.ApplicationContext
@ -151,12 +152,15 @@ class TasksWidget : AppWidgetProvider() {
}
private fun getPendingIntentTemplate(context: Context): PendingIntent =
PendingIntent.getActivity(
context,
0,
Intent(context, WidgetClickActivity::class.java),
/*PendingIntent.FLAG_MUTABLE or */PendingIntent.FLAG_UPDATE_CURRENT
)
PendingIntent.getActivity(
context,
0,
Intent(context, WidgetClickActivity::class.java),
if (atLeastS())
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
else
PendingIntent.FLAG_UPDATE_CURRENT
)
private fun getOpenListIntent(context: Context, filter: Filter, widgetId: Int): PendingIntent {
val intent = TaskIntents.getTaskListIntent(context, filter)

@ -1,7 +1,7 @@
object Versions {
const val kotlin = "1.5.21"
const val compileSdk = 31
const val targetSdk = 30
const val targetSdk = 31
const val minSdk = 24
const val work = "2.7.0-beta01"
const val leakcanary = "2.7"
@ -19,4 +19,4 @@ object Versions {
const val lifecycle = "2.3.0"
const val markwon = "4.6.2"
const val compose = "1.0.2"
}
}

Loading…
Cancel
Save