Add timer position setting

Resolves #71
This commit is contained in:
Trevor Slocum 2020-03-14 09:15:53 -07:00
parent e179b93f6e
commit c0f267f872
7 changed files with 164 additions and 117 deletions

View file

@ -3,6 +3,7 @@
- Add presets to tutorial
- Add session volume preview
- Add custom vibration patterns
- Add timer position setting
- Resolve possible crash when waking device
- Resolve duration not being preselected when editing
- Remove usage of Google Play Services (was previously used in releases on Google Play and Amazon)

View file

@ -18,6 +18,7 @@ import android.os.Handler;
import android.os.Looper;
import android.text.InputType;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
@ -354,10 +355,10 @@ public class MainActivity extends Activity implements OnShowcaseEventListener {
btnPreset3.setOnLongClickListener(presetListener);
updateVisibleViews(false);
if (getMeditationAssistant().getEditingDuration()) {
changeDuration(null);
}
updateMeditate(false, false);
if (getMeditationAssistant().getPrefs().getBoolean("pref_autosignin", false) && !getMeditationAssistant().getMediNETKey().equals("")) {
getMeditationAssistant().connectOnce();
@ -773,7 +774,7 @@ public class MainActivity extends Activity implements OnShowcaseEventListener {
public void updateVisibleViews(boolean fadeViews) {
RadioGroup radgMainTimerMode = findViewById(R.id.radgMainTimerMode);
RelativeLayout layLowerViews = findViewById(R.id.layLowerViews);
LinearLayout layLowerViews = findViewById(R.id.layLowerViews);
LinearLayout layLowerViewsEditing = findViewById(R.id.layLowerViewsEditing);
if (getMeditationAssistant().getEditingDuration()) {
@ -1628,6 +1629,20 @@ public class MainActivity extends Activity implements OnShowcaseEventListener {
usetimepicker = getMeditationAssistant().getPrefs().getBoolean("pref_usetimepicker", false);
TextView txtDurationSeconds = findViewById(R.id.txtDurationSeconds);
if (getMeditationAssistant().getPrefs().getBoolean("pref_display_seconds", true)) {
txtDurationSeconds.setVisibility(View.VISIBLE);
} else {
txtDurationSeconds.setVisibility(View.GONE);
}
LinearLayout layTimer = findViewById(R.id.layTimer);
if (getMeditationAssistant().getPrefs().getString("pref_timer_position", "").equals("center")) {
layTimer.setGravity(Gravity.CENTER_VERTICAL);
} else {
layTimer.setGravity(Gravity.TOP);
}
refreshAll();
if (getMeditationAssistant().asktorate) {

View file

@ -163,7 +163,7 @@ public class SettingsActivity extends PreferenceActivity {
preference.setSummary(
index >= 0
? listPreference.getEntries()[index]
: (preference instanceof ListPreferenceSound ? "Gong" : getString(R.string.disabled))
: (preference instanceof ListPreferenceSound ? "Gong" : (preference.getKey().equals("pref_timer_position") ? getString(R.string.top) : getString(R.string.disabled)))
); // TODO: Don't hardcode sound names
if (listPreference.getKey().equals("pref_theme")) {
@ -688,6 +688,7 @@ public class SettingsActivity extends PreferenceActivity {
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_screencontrol") : preferenceFragment.findPreference("pref_screencontrol"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_full_screen") : preferenceFragment.findPreference("pref_full_screen"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_text_size") : preferenceFragment.findPreference("pref_text_size"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_timer_position") : preferenceFragment.findPreference("pref_timer_position"));
bindPreferenceSummaryToValue(preferenceFragment == null ? findPreference("pref_autosave") : preferenceFragment.findPreference("pref_autosave"));
}
if (pref_type.equals("all") || pref_type.equals("progress")) {

View file

@ -1,11 +1,11 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="0dp"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp">
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="0dp"
android:paddingTop="0dp"
android:paddingRight="0dp"
android:paddingBottom="0dp">
<LinearLayout
android:layout_width="match_parent"
@ -30,69 +30,80 @@
android:gravity="top"
android:orientation="vertical">
<TextView
android:id="@+id/txtTimer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:layout_gravity="center_horizontal"
android:clickable="true"
android:onClick="changeDuration"
android:ellipsize="none"
android:gravity="center"
android:includeFontPadding="false"
android:lineSpacingMultiplier="0.9"
android:singleLine="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"/>
<LinearLayout
android:id="@+id/layTimer"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="top"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/layEditDuration"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone">
<EditText
android:id="@+id/editDuration"
<TextView
android:id="@+id/txtTimer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="0dp"
android:layout_marginTop="0dp"
android:layout_marginTop="7dp"
android:clickable="true"
android:ellipsize="none"
android:gravity="center"
android:imeOptions="actionDone"
android:selectAllOnFocus="true"
android:includeFontPadding="false"
android:inputType="time"
android:lineSpacingMultiplier="0.9"
android:maxLength="5"
android:onClick="changeDuration"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:visibility="gone"/>
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge" />
<sh.ftp.rocketninelabs.meditationassistant.TimePicker
android:id="@+id/timepickerDuration"
<RelativeLayout
android:id="@+id/layEditDuration"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"/>
</RelativeLayout>
android:visibility="gone">
<TextView
android:id="@+id/txtDurationSeconds"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="false"
android:gravity="center"
android:singleLine="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="33sp"/>
<EditText
android:id="@+id/editDuration"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="0dp"
android:layout_marginBottom="0dp"
android:gravity="center"
android:imeOptions="actionDone"
android:includeFontPadding="false"
android:inputType="time"
android:lineSpacingMultiplier="0.9"
android:maxLength="5"
android:selectAllOnFocus="true"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:visibility="gone" />
<RelativeLayout
<sh.ftp.rocketninelabs.meditationassistant.TimePicker
android:id="@+id/timepickerDuration"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center" />
</RelativeLayout>
<TextView
android:id="@+id/txtDurationSeconds"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:clickable="false"
android:gravity="center"
android:singleLine="true"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="33sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/layLowerViews"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<!--
<View
@ -117,10 +128,10 @@
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom"
android:gravity="bottom">
@ -131,12 +142,12 @@
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_gravity="bottom"
android:layout_marginBottom="7dp"
android:layout_marginTop="7dp"
android:layout_marginBottom="7dp"
android:clickable="false"
android:gravity="center"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium"/>
android:textAppearance="?android:attr/textAppearanceMedium" />
<View
android:id="@+id/divstreakUpper2"
@ -145,21 +156,21 @@
android:layout_below="@+id/txtMainStatus"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:background="?android:attr/listDivider"/>
android:background="?android:attr/listDivider" />
<Button
android:id="@+id/btnMeditate"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/divstreakUpper2"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/divstreakUpper2"
android:background="?android:attr/selectableItemBackground"
android:onClick="pressMeditate"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:text="@string/meditate"
android:textSize="33sp"/>
android:textSize="33sp" />
<View
android:id="@+id/divstreakUpper"
@ -168,21 +179,21 @@
android:layout_below="@+id/btnMeditate"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:background="?android:attr/listDivider"/>
android:background="?android:attr/listDivider" />
<Button
android:id="@+id/btnMeditationStreak"
android:layout_width="fill_parent"
android:layout_height="36dp"
android:layout_below="@+id/divstreakUpper"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/divstreakUpper"
android:background="?android:attr/selectableItemBackground"
android:gravity="center"
android:onClick="pressMediNET"
android:paddingBottom="1dp"
android:text="@string/signInToMediNET"
android:textAppearance="?android:attr/textAppearanceSmall"/>
android:textAppearance="?android:attr/textAppearanceSmall" />
<View
android:id="@+id/divMainControls"
@ -191,16 +202,16 @@
android:layout_below="@+id/btnMeditationStreak"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:background="?android:attr/listDivider"/>
android:background="?android:attr/listDivider" />
<LinearLayout
android:id="@+id/layMainControls"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="false"
android:layout_below="@+id/divMainControls"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/divMainControls"
android:layout_alignParentBottom="false"
android:gravity="bottom"
android:orientation="horizontal">
@ -212,15 +223,15 @@
android:background="?android:attr/selectableItemBackground"
android:onClick="openProgress"
android:text="@string/progress"
android:textAppearance="?android:attr/textAppearanceSmall"/>
android:textAppearance="?android:attr/textAppearanceSmall" />
<View
android:id="@+id/divMainControlsInner"
android:layout_width="1dp"
android:layout_height="fill_parent"
android:layout_marginBottom="7dp"
android:layout_marginTop="7dp"
android:background="?android:attr/listDivider"/>
android:layout_marginBottom="7dp"
android:background="?android:attr/listDivider" />
<Button
android:id="@+id/btnCommunity"
@ -231,15 +242,15 @@
android:background="?android:attr/selectableItemBackground"
android:onClick="pressCommunity"
android:text="@string/community"
android:textAppearance="?android:attr/textAppearanceSmall"/>
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/layLowerViewsEditing"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="bottom"
android:orientation="vertical"
@ -251,7 +262,7 @@
android:layout_height="1dp"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:background="?android:attr/listDivider"/>
android:background="?android:attr/listDivider" />
<RelativeLayout
android:id="@+id/layUseTimerControls"
@ -286,15 +297,15 @@
android:scrollHorizontally="true"
android:singleLine="true"
android:text="@string/timed"
tools:ignore="RtlSymmetry"/>
tools:ignore="RtlSymmetry" />
</RelativeLayout>
<View
android:layout_width="1dp"
android:layout_height="fill_parent"
android:layout_marginBottom="7dp"
android:layout_marginTop="7dp"
android:background="?android:attr/listDivider"/>
android:layout_marginBottom="7dp"
android:background="?android:attr/listDivider" />
<RelativeLayout
android:id="@+id/layMainEndAt"
@ -319,15 +330,15 @@
android:scrollHorizontally="true"
android:singleLine="true"
android:text="@string/endAt"
tools:ignore="RtlSymmetry"/>
tools:ignore="RtlSymmetry" />
</RelativeLayout>
<View
android:layout_width="1dp"
android:layout_height="fill_parent"
android:layout_marginBottom="7dp"
android:layout_marginTop="7dp"
android:background="?android:attr/listDivider"/>
android:layout_marginBottom="7dp"
android:background="?android:attr/listDivider" />
<RelativeLayout
android:id="@+id/layMainUntimed"
@ -350,7 +361,7 @@
android:scrollHorizontally="true"
android:singleLine="true"
android:text="@string/untimed"
tools:ignore="RtlSymmetry"/>
tools:ignore="RtlSymmetry" />
</RelativeLayout>
</RadioGroup>
@ -387,7 +398,7 @@
android:layout_height="1dp"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:background="?android:attr/listDivider"/>
android:background="?android:attr/listDivider" />
<LinearLayout
android:id="@+id/layPresets"
@ -407,14 +418,14 @@
android:scrollHorizontally="true"
android:singleLine="true"
android:text="@string/setPreset"
android:textAppearance="?android:attr/textAppearanceSmall"/>
android:textAppearance="?android:attr/textAppearanceSmall" />
<View
android:layout_width="1dp"
android:layout_height="fill_parent"
android:layout_marginBottom="7dp"
android:layout_marginTop="7dp"
android:background="?android:attr/listDivider"/>
android:layout_marginBottom="7dp"
android:background="?android:attr/listDivider" />
<Button
android:id="@+id/btnPreset2"
@ -428,14 +439,14 @@
android:scrollHorizontally="true"
android:singleLine="true"
android:text="@string/setPreset"
android:textAppearance="?android:attr/textAppearanceSmall"/>
android:textAppearance="?android:attr/textAppearanceSmall" />
<View
android:layout_width="1dp"
android:layout_height="fill_parent"
android:layout_marginBottom="7dp"
android:layout_marginTop="7dp"
android:background="?android:attr/listDivider"/>
android:layout_marginBottom="7dp"
android:background="?android:attr/listDivider" />
<Button
android:id="@+id/btnPreset3"
@ -448,7 +459,7 @@
android:onClick="pressPreset"
android:singleLine="true"
android:text="@string/setPreset"
android:textAppearance="?android:attr/textAppearanceSmall"/>
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
@ -458,7 +469,7 @@
android:layout_height="1dp"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:background="?android:attr/listDivider"/>
android:background="?android:attr/listDivider" />
<LinearLayout
android:id="@+id/layBottomEditingControls"
@ -473,15 +484,15 @@
android:layout_weight="1"
android:background="?android:attr/selectableItemBackground"
android:onClick="cancelSetDuration"
android:text="@string/cancel"/>
android:text="@string/cancel" />
<View
android:id="@+id/divMainEditing"
android:layout_width="1dp"
android:layout_height="fill_parent"
android:layout_marginBottom="7dp"
android:layout_marginTop="7dp"
android:background="?android:attr/listDivider"/>
android:layout_marginBottom="7dp"
android:background="?android:attr/listDivider" />
<Button
android:id="@+id/btnSetDuration"
@ -490,7 +501,7 @@
android:layout_weight="1"
android:background="?android:attr/selectableItemBackground"
android:onClick="setDuration"
android:text="@string/confirm"/>
android:text="@string/confirm" />
</LinearLayout>
</LinearLayout>
</LinearLayout>

View file

@ -11,6 +11,14 @@
<item>@string/sessionDeleteLocally</item>
<item>@string/sessionDeleteMediNET</item>
</string-array>
<string-array name="timer_positions_values">
<item></item>
<item>center</item>
</string-array>
<string-array name="timer_positions">
<item>@string/top</item>
<item>@string/center</item>
</string-array>
<string-array name="text_sizes_values">
<item>tiny</item>
<item>small</item>

View file

@ -228,7 +228,10 @@
<string name="uploadsessions">Upload sessions</string>
<string name="uploadsessions_summary">Upload local sessions</string>
<string name="miscellaneous">Miscellaneous</string>
<string name="pref_text_size">Timer text size</string>
<string name="timerPosition">Timer position</string>
<string name="top">Top</string>
<string name="center">Center</string>
<string name="pref_text_size">Timer size</string>
<string name="tiny">Tiny</string>
<string name="small">Small</string>
<string name="normal">Normal</string>

View file

@ -19,6 +19,30 @@
android:summary="@string/pref_usetimepicker_summary"
android:title="@string/pref_usetimepicker"/>
<ListPreference
android:defaultValue=""
android:entries="@array/autosave_labels"
android:entryValues="@array/autosave_values"
android:key="pref_autosave"
android:summary=""
android:title="@string/pref_autosave"/>
<ListPreference
android:defaultValue=""
android:entries="@array/timer_positions"
android:entryValues="@array/timer_positions_values"
android:key="pref_timer_position"
android:summary=""
android:title="@string/timerPosition"/>
<ListPreference
android:defaultValue="normal"
android:entries="@array/text_sizes"
android:entryValues="@array/text_sizes_values"
android:key="pref_text_size"
android:summary=""
android:title="@string/pref_text_size"/>
<ListPreference
android:defaultValue="dim"
android:dialogIcon="?attr/actionIconBrightnessLow"
@ -35,20 +59,4 @@
android:key="pref_full_screen"
android:title="@string/pref_full_screen"/>
<ListPreference
android:defaultValue="normal"
android:entries="@array/text_sizes"
android:entryValues="@array/text_sizes_values"
android:key="pref_text_size"
android:summary=""
android:title="@string/pref_text_size"/>
<ListPreference
android:defaultValue=""
android:entries="@array/autosave_labels"
android:entryValues="@array/autosave_values"
android:key="pref_autosave"
android:summary=""
android:title="@string/pref_autosave"/>
</PreferenceScreen>