push notification switch added

This commit is contained in:
cimenmus
2018-08-26 21:57:58 +03:00
parent 4e4cc40547
commit 75631479c6
9 changed files with 124 additions and 2 deletions

View File

@@ -3,13 +3,18 @@ package ch.pizzapp.android.fragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.widget.SwitchCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CompoundButton;
import android.widget.RelativeLayout;
import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog;
import com.onesignal.OneSignal;
import org.json.JSONObject;
import butterknife.BindString;
import butterknife.BindView;
@@ -22,10 +27,12 @@ import ch.pizzapp.android.activity.MyAddressesActivity;
import ch.pizzapp.android.activity.SplashActivity;
import ch.pizzapp.android.activity.UpdatePasswordActivity;
import ch.pizzapp.android.activity.UpdateProfileActivity;
import ch.pizzapp.android.api.ApiConstants;
import ch.pizzapp.android.api.ApiErrorUtils;
import ch.pizzapp.android.api.ApiService;
import ch.pizzapp.android.api.ResponseObject;
import ch.pizzapp.android.helper.DialogHelper;
import ch.pizzapp.android.helper.NetworkHelper;
import ch.pizzapp.android.helper.SessionHelper;
import ch.pizzapp.android.helper.SharedPrefsHelper;
import ch.pizzapp.android.model.UserModel;
@@ -47,6 +54,7 @@ public class ProfileFragment extends BaseFragment {
@BindView(R.id.lastnamePizzalinkInfoLayout) AppInfoView lastnamePizzalinkInfoLayout;
@BindView(R.id.emailPizzalinkInfoLayout) AppInfoView emailPizzalinkInfoLayout;
@BindView(R.id.phonePizzalinkInfoLayout) AppInfoView phonePizzalinkInfoLayout;
@BindView(R.id.enableNotificationsSwitch) SwitchCompat enableNotificationsSwitch;
@BindString(R.string.bottom_nav_menu_item_profile) String fragmentTitle;
@BindString(R.string.alert_logout) String logoutAlertText;
@@ -73,6 +81,7 @@ public class ProfileFragment extends BaseFragment {
ButterKnife.bind(this, view);
initViews();
getCustomerProfile();
getNotificationStatus();
return view;
}
@@ -129,6 +138,49 @@ public class ProfileFragment extends BaseFragment {
private void initViews(){
setPizzalinkToolbarFields(false, fragmentTitle);
enableNotificationsSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
setNotificationStatus();
}
});
}
private void getNotificationStatus(){
OneSignal.getTags(new OneSignal.GetTagsHandler() {
@Override
public void tagsAvailable(final JSONObject tags) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
if(tags != null &&
!tags.toString().isEmpty() &&
tags.toString().contains(ApiConstants.ONESIGNAL_NOTIFICATION_TAG_KEY)){
enableNotificationsSwitch.setChecked(true);
}
else {
enableNotificationsSwitch.setChecked(false);
}
}
});
}
});
}
private void setNotificationStatus(){
if(!NetworkHelper.isNetworkAvailable()){
DialogHelper.showNoNetworkDialog();
return;
}
if(enableNotificationsSwitch.isChecked()) {
OneSignal.sendTag(
ApiConstants.ONESIGNAL_NOTIFICATION_TAG_KEY,
ApiConstants.ONESIGNAL_NOTIFICATION_TAG_VALUE);
}
else {
OneSignal.deleteTag(ApiConstants.ONESIGNAL_NOTIFICATION_TAG_KEY);
}
}
private void getCustomerProfile(){