Skip to content

Commit

Permalink
Merge pull request #52 from AbdelrahmanBayoumi/45-fix-auto-location-d…
Browse files Browse the repository at this point in the history
…etection

45 fix auto location detection
  • Loading branch information
AbdelrahmanBayoumi authored Apr 30, 2024
2 parents 00a8866 + 5564eed commit 63a837f
Show file tree
Hide file tree
Showing 49 changed files with 1,640 additions and 1,151 deletions.
3 changes: 2 additions & 1 deletion Azkar/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -132,4 +132,5 @@ buildNumber.properties
.classpath

# Source Code Files
src/main/resources/sentry.properties
src/main/resources/sentry.properties
src/main/resources/config.properties
2 changes: 2 additions & 0 deletions Azkar/.idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 8 additions & 3 deletions Azkar/src/main/java/com/bayoumi/Launcher.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
import com.bayoumi.controllers.dialog.DownloadResourcesController;
import com.bayoumi.controllers.home.HomeController;
import com.bayoumi.models.Onboarding;
import com.bayoumi.models.settings.OtherSettings;
import com.bayoumi.models.preferences.Preferences;
import com.bayoumi.models.settings.Settings;
import com.bayoumi.preloader.CustomPreloaderMain;
import com.bayoumi.util.Constants;
import com.bayoumi.util.Logger;
Expand Down Expand Up @@ -84,6 +85,10 @@ public void init() {
}
incrementPreloader();

// --- initialize Preferences ---
Preferences.init();
incrementPreloader();

// --- initialize database connection (locationsDB) ---
try {
LocationsDBManager.getInstance();
Expand Down Expand Up @@ -120,7 +125,7 @@ private void incrementPreloader() {
LauncherImpl.notifyPreloader(this, new Preloader.ProgressNotification(preloaderProgress));
}

public void start(Stage primaryStage) {
public void start(Stage primaryStage) throws Exception {
if (locationsDBError) {
try {
final LoaderComponent popUp = Loader.getInstance().getPopUp(Locations.DownloadResources);
Expand All @@ -141,7 +146,7 @@ public void start(Stage primaryStage) {
primaryStage.setScene(scene);
// set Title and Icon to primaryStage
HelperMethods.SetAppDecoration(primaryStage);
if (Onboarding.isFirstTimeOpened() || !OtherSettings.getIsMinimizedDB()) {
if (Onboarding.isFirstTimeOpened() || !Settings.getInstance().getMinimized()) {
primaryStage.show();
}
// assign current primaryStage to SingleInstance Class
Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,26 @@
package com.bayoumi.controllers.azkar.timed;

import com.bayoumi.controllers.settings.SettingsInterface;
import com.bayoumi.models.settings.AzkarSettings;
import com.bayoumi.models.settings.Settings;
import com.jfoenix.controls.JFXComboBox;
import com.jfoenix.controls.JFXDialog;
import javafx.collections.FXCollections;
import com.jfoenix.controls.JFXToggleButton;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.Spinner;
import javafx.scene.control.SpinnerValueFactory;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;


public class SettingsController implements SettingsInterface {
public class SettingsController {

private AzkarSettings azkarSettings;
@FXML
private JFXComboBox<String> nightAzkarTimeComboBox;
private Spinner<Integer> morningAzkarTimeSpinner, nightAzkarTimeSpinner;
@FXML
private JFXComboBox<String> morningAzkarTimeComboBox;
private JFXToggleButton morningAzkarTimeToggle, nightAzkarTimeToggle;

private ObservableList<Text> list;
private JFXDialog dialog;

Expand All @@ -30,17 +29,73 @@ public void setData(ObservableList<Text> list, JFXDialog dialog) {
this.list = list;
this.dialog = dialog;

// init morning and night azkar reminder
nightAzkarTimeComboBox.setItems(FXCollections.observableArrayList("لا تذكير", "بـ نصف ساعة", "بـ ساعة"));
morningAzkarTimeComboBox.setItems(FXCollections.observableArrayList("لا تذكير", "بـ نصف ساعة", "بـ ساعة"));
morningAzkarTimeSpinner.setValueFactory(new SpinnerValueFactory.IntegerSpinnerValueFactory(0, 120, 30, 10));
nightAzkarTimeSpinner.setValueFactory(new SpinnerValueFactory.IntegerSpinnerValueFactory(0, 120, 30, 10));

morningAzkarTimeSpinner.getValueFactory().setValue(Settings.getInstance().getAzkarSettings().getMorningAzkarReminder());
nightAzkarTimeSpinner.getValueFactory().setValue(Settings.getInstance().getAzkarSettings().getNightAzkarReminder());

morningAzkarTimeToggle.setSelected(morningAzkarTimeSpinner.getValueFactory().getValue() != 0);
nightAzkarTimeToggle.setSelected(nightAzkarTimeSpinner.getValueFactory().getValue() != 0);

dialog.setOnDialogClosed(event -> Settings.getInstance().getAzkarSettings().notifyObservers());
}

@FXML
private void onMorningAzkarTimeChange() {
Settings.getInstance().getAzkarSettings().setMorningAzkarReminder(morningAzkarTimeSpinner.getValueFactory().getValue());
if (morningAzkarTimeSpinner.getValueFactory().getValue() == 0) {
morningAzkarTimeToggle.setSelected(false);
morningAzkarTimeSpinner.setDisable(true);
toggleAction(morningAzkarTimeToggle);
}
}

@FXML
private void onNightAzkarTimeChange() {
Settings.getInstance().getAzkarSettings().setNightAzkarReminder(nightAzkarTimeSpinner.getValueFactory().getValue());
if (nightAzkarTimeSpinner.getValueFactory().getValue() == 0) {
nightAzkarTimeToggle.setSelected(false);
nightAzkarTimeSpinner.setDisable(true);
toggleAction(nightAzkarTimeToggle);
}
}

@FXML
private void onMorningAzkarTimeToggle() {
toggleAction(morningAzkarTimeToggle);
if (morningAzkarTimeToggle.isSelected()) {
morningAzkarTimeSpinner.setDisable(false);
morningAzkarTimeSpinner.getValueFactory().setValue(30);
Settings.getInstance().getAzkarSettings().setMorningAzkarReminder(30);
} else {
morningAzkarTimeSpinner.setDisable(true);
morningAzkarTimeSpinner.getValueFactory().setValue(0);
Settings.getInstance().getAzkarSettings().setMorningAzkarReminder(0);
}
}

// init Saved data form DB
azkarSettings = Settings.getInstance().getAzkarSettings();
morningAzkarTimeComboBox.setValue(azkarSettings.getMorningAzkarReminder());
nightAzkarTimeComboBox.setValue(azkarSettings.getNightAzkarReminder());
dialog.setOnDialogClosed(event -> saveToDB());
@FXML
private void onNightAzkarTimeToggle() {
toggleAction(nightAzkarTimeToggle);
if (nightAzkarTimeToggle.isSelected()) {
nightAzkarTimeSpinner.setDisable(false);
nightAzkarTimeSpinner.getValueFactory().setValue(30);
Settings.getInstance().getAzkarSettings().setNightAzkarReminder(30);
} else {
nightAzkarTimeSpinner.setDisable(true);
nightAzkarTimeSpinner.getValueFactory().setValue(0);
Settings.getInstance().getAzkarSettings().setNightAzkarReminder(0);
}
}

private void toggleAction(JFXToggleButton toggleButton) {
if (toggleButton.isSelected()) {
toggleButton.setText("مُفعلة");
} else {
toggleButton.setText("لا تذكير");
}
}

@FXML
private void maximizeFont() {
Expand All @@ -67,10 +122,4 @@ private void keyEventAction(KeyEvent keyEvent) {
}
}

@Override
public void saveToDB() {
azkarSettings.setMorningAzkarReminder(morningAzkarTimeComboBox.getValue());
azkarSettings.setNightAzkarReminder(nightAzkarTimeComboBox.getValue());
azkarSettings.save();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ private void updateBundle(ResourceBundle bundle) {
summerTiming.setText(Utility.toUTF(bundle.getString("extraOneHourDayLightSaving")));
standardJuristic.setText(Utility.toUTF(bundle.getString("asrMadhabJumhoor")));
hanafiRadioButton.setText(Utility.toUTF(bundle.getString("hanafi")));
methodComboBox.setConverter(PrayerTimeSettings.Method.getStringConverter(Settings.getInstance().getOtherSettings().getLanguage().equals(Language.Arabic)));
methodComboBox.setValue(null);
methodComboBox.setConverter(PrayerTimeSettings.Method.getStringConverter(Settings.getInstance().getLanguage().equals(Language.Arabic)));
methodComboBox.setValue(prayerTimeSettings.getMethod());
}

Expand All @@ -59,8 +58,24 @@ public void setData() {
@Override
public void initialize(URL location, ResourceBundle resources) {
methodComboBox.setItems(FXCollections.observableArrayList(PrayerTimeSettings.Method.getListOfMethods()));
LanguageBundle.getInstance().addObserver((o, arg) -> {
updateBundle(LanguageBundle.getInstance().getResourceBundle());
});
LanguageBundle.getInstance().addObserver((o, arg) -> updateBundle(LanguageBundle.getInstance().getResourceBundle()));
}

@FXML
private void onMethodSelect() {
prayerTimeSettings.setMethod(methodComboBox.getValue());
prayerTimeSettings.handleNotifyObservers();
}

@FXML
private void onAsrJuristicSelect() {
prayerTimeSettings.setAsrJuristic(standardJuristic.isSelected() ? 0 : 1);
prayerTimeSettings.handleNotifyObservers();
}

@FXML
private void onSummerTimingSelect() {
prayerTimeSettings.setSummerTiming(summerTiming.isSelected());
prayerTimeSettings.handleNotifyObservers();
}
}
Loading

0 comments on commit 63a837f

Please sign in to comment.