mirror of
https://bitbucket.org/TheBosZ/cordova-plugin-run-in-background
synced 2024-11-22 07:14:54 +00:00
Fix null pointer exception if launch intent may be null
This commit is contained in:
parent
d0d8b9e981
commit
8b7ef48cff
@ -17,10 +17,16 @@
|
|||||||
KIND, either express or implied. See the License for the
|
KIND, either express or implied. See the License for the
|
||||||
specific language governing permissions and limitations
|
specific language governing permissions and limitations
|
||||||
under the License.
|
under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package de.appplant.cordova.plugin.background;
|
package de.appplant.cordova.plugin.background;
|
||||||
|
|
||||||
|
import java.util.Timer;
|
||||||
|
import java.util.TimerTask;
|
||||||
|
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.app.Service;
|
import android.app.Service;
|
||||||
@ -30,14 +36,6 @@ import android.content.res.Resources;
|
|||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import org.json.JSONException;
|
|
||||||
import org.json.JSONObject;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.Timer;
|
|
||||||
import java.util.TimerTask;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Puts the service in a foreground state, where the system considers it to be
|
* Puts the service in a foreground state, where the system considers it to be
|
||||||
@ -92,6 +90,7 @@ public class ForegroundService extends Service {
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
handler.post(new Runnable() {
|
handler.post(new Runnable() {
|
||||||
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
// Nothing to do here
|
// Nothing to do here
|
||||||
// Log.d("BackgroundMode", "" + new Date().getTime());
|
// Log.d("BackgroundMode", "" + new Date().getTime());
|
||||||
@ -119,26 +118,27 @@ public class ForegroundService extends Service {
|
|||||||
* A local ongoing notification which pending intent is bound to the
|
* A local ongoing notification which pending intent is bound to the
|
||||||
* main activity.
|
* main activity.
|
||||||
*/
|
*/
|
||||||
|
@SuppressLint("NewApi")
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
private Notification makeNotification() {
|
private Notification makeNotification() {
|
||||||
Context context = getApplicationContext();
|
JSONObject settings = BackgroundMode.settings;
|
||||||
String pkgName = context.getPackageName();
|
Context context = getApplicationContext();
|
||||||
Intent intent = context.getPackageManager()
|
String pkgName = context.getPackageName();
|
||||||
|
Intent intent = context.getPackageManager()
|
||||||
.getLaunchIntentForPackage(pkgName);
|
.getLaunchIntentForPackage(pkgName);
|
||||||
|
|
||||||
PendingIntent contentIntent = PendingIntent.getActivity(
|
|
||||||
context, NOTIFICATION_ID, intent, PendingIntent.FLAG_CANCEL_CURRENT);
|
|
||||||
|
|
||||||
JSONObject settings = BackgroundMode.settings;
|
|
||||||
|
|
||||||
Notification.Builder notification = new Notification.Builder(context)
|
Notification.Builder notification = new Notification.Builder(context)
|
||||||
.setContentTitle(settings.optString("title"))
|
.setContentTitle(settings.optString("title", ""))
|
||||||
.setContentText(settings.optString("text"))
|
.setContentText(settings.optString("text", ""))
|
||||||
.setTicker(settings.optString("ticker"))
|
.setTicker(settings.optString("ticker", ""))
|
||||||
.setOngoing(true)
|
.setOngoing(true)
|
||||||
.setSmallIcon(getIconResId());
|
.setSmallIcon(getIconResId());
|
||||||
|
|
||||||
|
if (intent != null && settings.optBoolean("resume")) {
|
||||||
|
|
||||||
|
PendingIntent contentIntent = PendingIntent.getActivity(
|
||||||
|
context, NOTIFICATION_ID, intent, PendingIntent.FLAG_CANCEL_CURRENT);
|
||||||
|
|
||||||
if (settings.optBoolean("resume")) {
|
|
||||||
notification.setContentIntent(contentIntent);
|
notification.setContentIntent(contentIntent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user