From 75631479c69a832fd859bf490ac6c816efdcfbac Mon Sep 17 00:00:00 2001 From: cimenmus Date: Sun, 26 Aug 2018 21:57:58 +0300 Subject: [PATCH] push notification switch added --- .idea/caches/build_file_checksums.ser | Bin 538 -> 538 bytes .../android/activity/SplashActivity.java | 12 ++++ .../ch/pizzapp/android/api/ApiConstants.java | 3 + .../android/fragment/ProfileFragment.java | 52 ++++++++++++++++++ .../pizzapp/android/helper/SessionHelper.java | 7 +++ .../android/helper/SharedPrefsHelper.java | 9 +++ app/src/main/res/layout/fragment_profile.xml | 38 +++++++++++++ app/src/main/res/values/strings.xml | 3 +- build.gradle | 2 +- 9 files changed, 124 insertions(+), 2 deletions(-) diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index d45f8d2e4adcc75679029d43cfb778ddb3c57d78..a2db3e880b555b7618094b127d39a0cb4d74cbd3 100644 GIT binary patch delta 35 tcmV+;0NnqY1eyepm;`q_wK0*L> call = ApiService.apiInterface.getStoreList(); diff --git a/app/src/main/java/ch/pizzapp/android/api/ApiConstants.java b/app/src/main/java/ch/pizzapp/android/api/ApiConstants.java index ae3445d..14950d7 100644 --- a/app/src/main/java/ch/pizzapp/android/api/ApiConstants.java +++ b/app/src/main/java/ch/pizzapp/android/api/ApiConstants.java @@ -31,4 +31,7 @@ public class ApiConstants { public static final String CART_SUBTOTAL = "zwischensumme"; public static final String CART_COMMISSION = "zahlungsgebühr"; public static final String CART_TOTAL = "total"; + + public static final String ONESIGNAL_NOTIFICATION_TAG_KEY = "notificationAllowed"; + public static final String ONESIGNAL_NOTIFICATION_TAG_VALUE = "true"; } diff --git a/app/src/main/java/ch/pizzapp/android/fragment/ProfileFragment.java b/app/src/main/java/ch/pizzapp/android/fragment/ProfileFragment.java index 38fe978..7db420d 100644 --- a/app/src/main/java/ch/pizzapp/android/fragment/ProfileFragment.java +++ b/app/src/main/java/ch/pizzapp/android/fragment/ProfileFragment.java @@ -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(){ diff --git a/app/src/main/java/ch/pizzapp/android/helper/SessionHelper.java b/app/src/main/java/ch/pizzapp/android/helper/SessionHelper.java index 42ce81a..3a4df9b 100644 --- a/app/src/main/java/ch/pizzapp/android/helper/SessionHelper.java +++ b/app/src/main/java/ch/pizzapp/android/helper/SessionHelper.java @@ -91,6 +91,13 @@ public class SessionHelper { //return SharedPrefsHelper.getSelectedStore(); } + public static void setIsFirstTime(boolean isFirstTime){ + SharedPrefsHelper.setIsFirstTime(isFirstTime); + } + + public static boolean isFirstTime(){ + return SharedPrefsHelper.isFirstTime(); + } public static void logOut(){ setCustomerLoggedIn(false); diff --git a/app/src/main/java/ch/pizzapp/android/helper/SharedPrefsHelper.java b/app/src/main/java/ch/pizzapp/android/helper/SharedPrefsHelper.java index 56e80dd..9997bcf 100644 --- a/app/src/main/java/ch/pizzapp/android/helper/SharedPrefsHelper.java +++ b/app/src/main/java/ch/pizzapp/android/helper/SharedPrefsHelper.java @@ -40,6 +40,7 @@ public class SharedPrefsHelper { private static final String PREF_KEY_USER_SEEN_CHAMPAGNE_CAMPAIGN = SHARED_PREFS_NAME + "userSeenChampagneCampaign"; private static final String PREF_KEY_USER_USED_CHAMPAGNE_CAMPAIGN = SHARED_PREFS_NAME + "userUsedChampagneCampaign"; private static final String PREF_KEY_USER_SELECTED_STORE = SHARED_PREFS_NAME + "selectedStore"; + private static final String PREF_KEY_IS_FIRST_TIME = SHARED_PREFS_NAME + "isFirstTime"; private static SharedPreferences sharedPreferences = BaseActivity.currentActivity @@ -198,6 +199,14 @@ public class SharedPrefsHelper { } + public static void setIsFirstTime(boolean isFirstTime){ + editor.putBoolean(PREF_KEY_IS_FIRST_TIME, isFirstTime); + editor.apply(); + } + + public static boolean isFirstTime(){ + return sharedPreferences.getBoolean(PREF_KEY_IS_FIRST_TIME, true); + } /* public static void saveCategoryList(ArrayList cats){ diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml index 8c57864..4792482 100644 --- a/app/src/main/res/layout/fragment_profile.xml +++ b/app/src/main/res/layout/fragment_profile.xml @@ -187,6 +187,44 @@ + + + + + + + + + + Meine Adressen     Profil Aktualisieren     Passwort Aktualisieren     - Abmelden     + Benachrichtigungen aktivieren     Postleitzahl Ändern     Möchten Sie sich abmelden? + Abmelden  diff --git a/build.gradle b/build.gradle index 83502c9..e263bbd 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { maven { url 'https://maven.fabric.io/public' } } dependencies { - classpath 'com.android.tools.build:gradle:3.1.3' + classpath 'com.android.tools.build:gradle:3.1.4' classpath 'io.fabric.tools:gradle:1.+' // NOTE: Do not place your application dependencies here; they belong