package com.thomasdh.roosterpgplus.Settings;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import com.google.android.gms.analytics.HitBuilders;
import com.google.android.gms.analytics.Tracker;
import com.thomasdh.roosterpgplus.Data.Account;
import com.thomasdh.roosterpgplus.Helpers.HelperFunctions;
import com.thomasdh.roosterpgplus.MainApplication;
import com.thomasdh.roosterpgplus.Notifications.NextUurNotificationActionReceiver;
import com.thomasdh.roosterpgplus.Notifications.NextUurNotifications;
import com.thomasdh.roosterpgplus.R;
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class AchtergrondFragment extends ThemedPreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences_achtergrond);
Tracker tracker = MainApplication.getTracker(MainApplication.TrackerName.APP_TRACKER, getActivity().getApplicationContext());
tracker.setScreenName(Constants.ANALYTICS_FRAGMENT_SETTINGS_NOTIFICATIES);
tracker.send(new HitBuilders.ScreenViewBuilder().build());
CheckBoxPreference mainSetting = (CheckBoxPreference) findPreference("notificaties");
ListPreference notificationFirstShow = (ListPreference) findPreference("notificationFirstShow");
CheckBoxPreference pushNotification = (CheckBoxPreference) findPreference("pushNotificaties");
mainSetting.setOnPreferenceChangeListener((preference, newValue) -> {
boolean choice = (boolean) newValue;
if (choice) {
notificationFirstShow.setEnabled(true);
new NextUurNotifications(getActivity(), 0, true); // Setup
} else {
notificationFirstShow.setEnabled(false);
NextUurNotificationActionReceiver.disableNotifications(getActivity());
}
return true;
});
notificationFirstShow.setOnPreferenceChangeListener((preference, newValue) -> {
NextUurNotificationActionReceiver.disableNotifications(getActivity());
new NextUurNotifications(getActivity(), Long.parseLong((String) newValue), true); // Update alles
return true;
});
if(!HelperFunctions.checkPlayServices(getActivity())) pushNotification.setEnabled(false);
pushNotification.setOnPreferenceClickListener(preference -> {
if(!HelperFunctions.checkPlayServices(getActivity())) {
HelperFunctions.checkPlayServicesWithError(getActivity());
return false;
} else {
return true;
}
});
pushNotification.setOnPreferenceChangeListener((preference, o) -> {
if((boolean) o) {
Account.getInstance(getActivity()).registerGCM(getActivity());
}
return true;
});
}
}