1
0
Fork 0
mirror of https://github.com/M66B/FairEmail.git synced 2025-02-27 16:33:47 +00:00

Added day scheduling

This commit is contained in:
M66B 2019-12-23 11:21:27 +01:00
parent 75ce2a4250
commit 57a142b3cb
2 changed files with 94 additions and 10 deletions

View file

@ -32,6 +32,7 @@ import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.CheckBox;
import android.widget.CompoundButton; import android.widget.CompoundButton;
import android.widget.Spinner; import android.widget.Spinner;
import android.widget.TextView; import android.widget.TextView;
@ -45,6 +46,7 @@ import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.Lifecycle; import androidx.lifecycle.Lifecycle;
import androidx.preference.PreferenceManager; import androidx.preference.PreferenceManager;
import java.text.DateFormatSymbols;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
@ -52,9 +54,10 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
private SwitchCompat swEnabled; private SwitchCompat swEnabled;
private Spinner spPollInterval; private Spinner spPollInterval;
private SwitchCompat swSchedule; private SwitchCompat swSchedule;
private TextView tvSchedulePro;
private TextView tvScheduleStart; private TextView tvScheduleStart;
private TextView tvScheduleEnd; private TextView tvScheduleEnd;
private TextView tvSchedulePro; private CheckBox[] cbDay;
private SwitchCompat swUnseen; private SwitchCompat swUnseen;
private SwitchCompat swFlagged; private SwitchCompat swFlagged;
private SwitchCompat swDeleteUnseen; private SwitchCompat swDeleteUnseen;
@ -83,9 +86,18 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
swEnabled = view.findViewById(R.id.swEnabled); swEnabled = view.findViewById(R.id.swEnabled);
spPollInterval = view.findViewById(R.id.spPollInterval); spPollInterval = view.findViewById(R.id.spPollInterval);
swSchedule = view.findViewById(R.id.swSchedule); swSchedule = view.findViewById(R.id.swSchedule);
tvSchedulePro = view.findViewById(R.id.tvSchedulePro);
tvScheduleStart = view.findViewById(R.id.tvScheduleStart); tvScheduleStart = view.findViewById(R.id.tvScheduleStart);
tvScheduleEnd = view.findViewById(R.id.tvScheduleEnd); tvScheduleEnd = view.findViewById(R.id.tvScheduleEnd);
tvSchedulePro = view.findViewById(R.id.tvSchedulePro); cbDay = new CheckBox[]{
view.findViewById(R.id.cbDay0),
view.findViewById(R.id.cbDay1),
view.findViewById(R.id.cbDay2),
view.findViewById(R.id.cbDay3),
view.findViewById(R.id.cbDay4),
view.findViewById(R.id.cbDay5),
view.findViewById(R.id.cbDay6)
};
swUnseen = view.findViewById(R.id.swUnseen); swUnseen = view.findViewById(R.id.swUnseen);
swFlagged = view.findViewById(R.id.swFlagged); swFlagged = view.findViewById(R.id.swFlagged);
swDeleteUnseen = view.findViewById(R.id.swDeleteUnseen); swDeleteUnseen = view.findViewById(R.id.swDeleteUnseen);
@ -144,6 +156,8 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
} }
}); });
Helper.linkPro(tvSchedulePro);
tvScheduleStart.setOnClickListener(new View.OnClickListener() { tvScheduleStart.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -166,7 +180,18 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
} }
}); });
Helper.linkPro(tvSchedulePro); String[] daynames = new DateFormatSymbols().getWeekdays();
for (int i = 0; i < 7; i++) {
final int day = i;
cbDay[i].setText(daynames[i + 1]);
cbDay[i].setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
prefs.edit().putBoolean("schedule_day" + day, isChecked).apply();
ServiceSynchronize.reschedule(getContext());
}
});
}
swUnseen.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { swUnseen.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override @Override
@ -294,6 +319,8 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
swSchedule.setEnabled(pro); swSchedule.setEnabled(pro);
tvScheduleStart.setText(formatHour(getContext(), prefs.getInt("schedule_start", 0))); tvScheduleStart.setText(formatHour(getContext(), prefs.getInt("schedule_start", 0)));
tvScheduleEnd.setText(formatHour(getContext(), prefs.getInt("schedule_end", 0))); tvScheduleEnd.setText(formatHour(getContext(), prefs.getInt("schedule_end", 0)));
for (int i = 0; i < 7; i++)
cbDay[i].setChecked(prefs.getBoolean("schedule_day" + i, true));
swUnseen.setChecked(prefs.getBoolean("sync_unseen", false)); swUnseen.setChecked(prefs.getBoolean("sync_unseen", false));
swFlagged.setChecked(prefs.getBoolean("sync_flagged", false)); swFlagged.setChecked(prefs.getBoolean("sync_flagged", false));

View file

@ -107,6 +107,16 @@
app:layout_constraintTop_toBottomOf="@id/tvPollHint" app:layout_constraintTop_toBottomOf="@id/tvPollHint"
app:switchPadding="12dp" /> app:switchPadding="12dp" />
<TextView
android:id="@+id/tvSchedulePro"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title_pro_feature"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorLink"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swSchedule" />
<TextView <TextView
android:id="@+id/tvScheduleStart" android:id="@+id/tvScheduleStart"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -116,7 +126,7 @@
android:textAppearance="@style/TextAppearance.AppCompat.Medium" android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?android:attr/textColorPrimary" android:textColor="?android:attr/textColorPrimary"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swSchedule" /> app:layout_constraintTop_toBottomOf="@id/tvSchedulePro" />
<TextView <TextView
android:id="@+id/tvScheduleSeparator" android:id="@+id/tvScheduleSeparator"
@ -152,16 +162,63 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvScheduleStart" /> app:layout_constraintTop_toBottomOf="@id/tvScheduleStart" />
<TextView <CheckBox
android:id="@+id/tvSchedulePro" android:id="@+id/cbDay0"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/title_pro_feature" android:layout_marginTop="12dp"
android:textAppearance="@style/TextAppearance.AppCompat.Small" android:text="Sunday"
android:textColor="?android:attr/textColorLink"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvScheduleHint" /> app:layout_constraintTop_toBottomOf="@id/tvScheduleHint" />
<CheckBox
android:id="@+id/cbDay1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Monday"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbDay0" />
<CheckBox
android:id="@+id/cbDay2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tuesday"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbDay1" />
<CheckBox
android:id="@+id/cbDay3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Wednesday"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbDay2" />
<CheckBox
android:id="@+id/cbDay4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Thursday"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbDay3" />
<CheckBox
android:id="@+id/cbDay5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Friday"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbDay4" />
<CheckBox
android:id="@+id/cbDay6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Saturday"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cbDay5" />
<androidx.appcompat.widget.SwitchCompat <androidx.appcompat.widget.SwitchCompat
android:id="@+id/swUnseen" android:id="@+id/swUnseen"
android:layout_width="0dp" android:layout_width="0dp"
@ -170,7 +227,7 @@
android:text="@string/title_advanced_unseen" android:text="@string/title_advanced_unseen"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvSchedulePro" app:layout_constraintTop_toBottomOf="@id/cbDay6"
app:switchPadding="12dp" /> app:switchPadding="12dp" />
<TextView <TextView