package com.jdroid.android.sample.ui.firebase.fcm;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import com.jdroid.android.firebase.fcm.AbstractFcmAppModule;
import com.jdroid.android.firebase.fcm.AbstractFcmMessageResolver;
import com.jdroid.android.firebase.fcm.FcmRegistrationCommand;
import com.jdroid.android.firebase.fcm.notification.NotificationFcmMessage;
import com.jdroid.android.firebase.instanceid.InstanceIdHelper;
import com.jdroid.android.fragment.AbstractFragment;
import com.jdroid.android.sample.R;
import com.jdroid.android.sample.api.SampleApiService;
import com.jdroid.java.collections.Maps;
import com.jdroid.java.concurrent.ExecutorUtils;
import com.jdroid.java.exception.UnexpectedException;
import java.io.IOException;
import java.util.Map;
public class FcmFragment extends AbstractFragment {
@Override
public Integer getContentFragmentLayout() {
return R.layout.fcm_fragment;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
findView(R.id.registerDevice).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new FcmRegistrationCommand().start(false);
}
});
findView(R.id.registerDeviceAndUpdateLastActiveTimestamp).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new FcmRegistrationCommand().start(true);
}
});
findView(R.id.removeInstanceId).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ExecutorUtils.execute(new Runnable() {
@Override
public void run() {
InstanceIdHelper.removeInstanceId();
}
});
}
});
findView(R.id.removeDevice).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ExecutorUtils.execute(new Runnable() {
@Override
public void run() {
new SampleApiService().removeDevice();
}
});
}
});
final EditText googleServerApiKeyEditText = findView(R.id.googleServerApiKey);
googleServerApiKeyEditText.setText("AIzaSyBhf3imq3mldsdlh65nJqIIjXxLYPjh9fs");
final EditText messageKeyEditText = findView(R.id.messageKey);
messageKeyEditText.setText("sampleMessage");
final EditText minAppVersionCode = findView(R.id.minAppVersionCode);
minAppVersionCode.setText("0");
final EditText minDeviceOsVersion = findView(R.id.minDeviceOsVersion);
minDeviceOsVersion.setText("0");
final EditText senderId = findView(R.id.senderId);
senderId.setText(AbstractFcmAppModule.get().getFcmSenders().get(0).getSenderId());
findView(R.id.sendPush).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ExecutorUtils.execute(new Runnable() {
@Override
public void run() {
try {
String googleServerApiKey = googleServerApiKeyEditText.getText().length() > 0 ? googleServerApiKeyEditText.getText().toString() : null;
String registrationToken = FcmRegistrationCommand.getRegistrationToken(senderId.getText().toString());
Map<String, String> params = Maps.newHashMap();
if (minAppVersionCode.getText().length() > 0) {
params.put(AbstractFcmMessageResolver.MIN_APP_VERSION_CODE_KEY, minAppVersionCode.getText().toString());
}
if (minDeviceOsVersion.getText().length() > 0) {
params.put(AbstractFcmMessageResolver.MIN_DEVICE_OS_VERSION_KEY, minDeviceOsVersion.getText().toString());
}
String messageKey = messageKeyEditText.getText().toString();
if (NotificationFcmMessage.MESSAGE_KEY.equals(messageKey)) {
params.put(NotificationFcmMessage.CONTENT_TITLE, "Sample Content Title");
params.put(NotificationFcmMessage.CONTENT_TEXT, "Sample Content Text");
params.put(NotificationFcmMessage.LIGHT_ENABLED, "true");
params.put(NotificationFcmMessage.SOUND_ENABLED, "false");
params.put(NotificationFcmMessage.VIBRATION_ENABLED, "true");
params.put(NotificationFcmMessage.URL, "http://jdroidframework.com/uri/noflags?a=1");
params.put(NotificationFcmMessage.LARGE_ICON_URL, "http://jdroidframework.com/images/gradle.png");
}
new SampleApiService().sendPush(googleServerApiKey, registrationToken, messageKey, params);
} catch (IOException e) {
throw new UnexpectedException(e);
}
}
});
}
});
}
}