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

Binary file not shown.

View File

@@ -2,6 +2,7 @@ package ch.pizzapp.android.activity;
import android.annotation.TargetApi;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Build;
@@ -18,6 +19,7 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import com.afollestad.materialdialogs.MaterialDialog;
import com.onesignal.OneSignal;
import java.util.ArrayList;
import java.util.Collections;
@@ -66,6 +68,7 @@ public class SplashActivity extends BaseActivity {
ButterKnife.bind(this);
//DisplayHelper.changeStatusColor();
if(NetworkHelper.isNetworkAvailable()){
registerNotificationTag();
getStoreList();
}
else{
@@ -90,6 +93,15 @@ public class SplashActivity extends BaseActivity {
}
}
private void registerNotificationTag(){
if(SessionHelper.isFirstTime()) {
OneSignal.sendTag(
ApiConstants.ONESIGNAL_NOTIFICATION_TAG_KEY,
ApiConstants.ONESIGNAL_NOTIFICATION_TAG_VALUE);
SessionHelper.setIsFirstTime(false);
}
}
private void getStoreList(){
DialogHelper.showLoadingDialog();
Call<ResponseArray<StoreModel>> call = ApiService.apiInterface.getStoreList();

View File

@@ -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";
}

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(){

View File

@@ -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);

View File

@@ -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<Category> cats){

View File

@@ -187,6 +187,44 @@
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:background="@color/black"/>
<RelativeLayout
android:id="@+id/enableNotificationsLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/enable_notifications"
android:layout_marginTop="4dp"
android:textColor="@color/black"
fontPath="fonts/Quicksand-Bold.ttf"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_toLeftOf="@+id/enableNotificationsSwitch"
android:layout_toStartOf="@+id/enableNotificationsSwitch"/>
<android.support.v7.widget.SwitchCompat
android:id="@+id/enableNotificationsSwitch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true" />
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"

View File

@@ -204,9 +204,10 @@
<string name="my_addresses">Meine Adressen</string>    
<string name="update_profile">Profil Aktualisieren</string>    
<string name="update_password">Passwort Aktualisieren</string>    
<string name="button_logout">Abmelden</string>    
<string name="enable_notifications">Benachrichtigungen aktivieren</string>    
<string name="change_post_code">Postleitzahl Ändern</string>    
<string name="alert_logout">Möchten Sie sich abmelden?</string>
<string name="button_logout">Abmelden</string> 
<!-- ProfileFragment-->
<!-- UpdateProfilectivity-->

View File

@@ -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