Sha256: ce778b468cfb1a151ce0720a0173d6493a7e0472af0759ac3c4ebfcb1f046e55

Contents?: true

Size: 1.69 KB

Versions: 23

Compression:

Stored size: 1.69 KB

Contents

package com.rhomobile.rhodes;

import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Build;

public class PushService {

	private static final String TAG = "PushService";
	
	public static final String C2DM_INTENT_PREFIX = "com.google.android.c2dm.intent.";
	
	private static void checkCapabilities() throws IllegalAccessException {
		if (!Capabilities.PUSH_ENABLED)
			throw new IllegalAccessException("Capability PUSH disabled");
	}
	
	private static boolean isOsVersionEnough() {
		int sdkVersion = Integer.parseInt(Build.VERSION.SDK);
		return sdkVersion >= Build.VERSION_CODES.FROYO;
	}
	
	public static void register() throws IllegalAccessException {
		if (!isOsVersionEnough()) {
			Logger.E(TAG, "OS version is not enough for C2DM");
			return;
		}
		
		checkCapabilities();
		
		Logger.D(TAG, "Register for PUSH messages (use \"" + Push.SENDER + "\" as sender)");
		
		Context ctx = RhodesService.getContext();
		Intent registrationIntent = new Intent(C2DM_INTENT_PREFIX + "REGISTER");
		registrationIntent.putExtra("app", PendingIntent.getBroadcast(ctx, 0, new Intent(), 0));
		registrationIntent.putExtra("sender", Push.SENDER);
		ctx.startService(registrationIntent);
	}
	
	public static void unregister() throws IllegalAccessException {
		if (!isOsVersionEnough()) {
			Logger.E(TAG, "OS version is not enough for C2DM");
			return;
		}
		
		checkCapabilities();
		
		Logger.D(TAG, "Unregister from PUSH messages");
		
		Context ctx = RhodesService.getContext();
		Intent unregIntent = new Intent(C2DM_INTENT_PREFIX + "UNREGISTER");
		unregIntent.putExtra("app", PendingIntent.getBroadcast(ctx, 0, new Intent(), 0));
		ctx.startService(unregIntent);
	}
	
}

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
rhodes-3.0.2 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.2.beta.1 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.1 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.1.beta.8 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.1.beta.7 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.1.beta.6 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.1.beta.5 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.1.beta.4 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.1.beta.3 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.1.beta.2 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.0 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.0.beta.7 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.0.beta.6 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.0.beta.5 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.0.beta.4 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.0.beta.3 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.0.beta.2 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-3.0.0.beta.1 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-2.4.1 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java
rhodes-2.4.1.beta.1 platform/android/Rhodes/src/com/rhomobile/rhodes/PushService.java