Merge pull request #183 from SimpleMobileTools/request_3

Request 3
This commit is contained in:
Tibor Kaputa
2020-03-16 20:04:21 +01:00
committed by GitHub
2 changed files with 108 additions and 91 deletions

View File

@ -6,18 +6,17 @@ import android.appwidget.AppWidgetManager
import android.content.ComponentName import android.content.ComponentName
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.SharedPreferences
import android.media.AudioAttributes import android.media.AudioAttributes
import android.media.AudioManager import android.media.AudioManager
import android.media.AudioManager.STREAM_ALARM import android.media.AudioManager.STREAM_ALARM
import android.net.Uri import android.net.Uri
import android.os.Build
import android.os.PowerManager import android.os.PowerManager
import android.text.SpannableString import android.text.SpannableString
import android.text.style.RelativeSizeSpan import android.text.style.RelativeSizeSpan
import android.widget.Toast import android.widget.Toast
import androidx.core.app.AlarmManagerCompat import androidx.core.app.AlarmManagerCompat
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import androidx.preference.PreferenceManager
import com.simplemobiletools.clock.R import com.simplemobiletools.clock.R
import com.simplemobiletools.clock.activities.ReminderActivity import com.simplemobiletools.clock.activities.ReminderActivity
import com.simplemobiletools.clock.activities.SnoozeReminderActivity import com.simplemobiletools.clock.activities.SnoozeReminderActivity
@ -31,13 +30,11 @@ import com.simplemobiletools.clock.receivers.HideAlarmReceiver
import com.simplemobiletools.clock.receivers.HideTimerReceiver import com.simplemobiletools.clock.receivers.HideTimerReceiver
import com.simplemobiletools.clock.services.SnoozeService import com.simplemobiletools.clock.services.SnoozeService
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.ALARM_SOUND_TYPE_ALARM import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.helpers.DAY_MINUTES
import com.simplemobiletools.commons.helpers.SILENT
import com.simplemobiletools.commons.helpers.isOreoPlus
import java.util.* import java.util.*
import kotlin.math.pow import kotlin.math.pow
val Context.config: Config get() = Config.newInstance(applicationContext) val Context.config: Config get() = Config.newInstance(applicationContext)
val Context.dbHelper: DBHelper get() = DBHelper.newInstance(applicationContext) val Context.dbHelper: DBHelper get() = DBHelper.newInstance(applicationContext)
@ -168,7 +165,11 @@ fun Context.scheduleNextWidgetUpdate() {
val alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager val alarmManager = getSystemService(Context.ALARM_SERVICE) as AlarmManager
val triggerAtMillis = System.currentTimeMillis() + getMSTillNextMinute() val triggerAtMillis = System.currentTimeMillis() + getMSTillNextMinute()
alarmManager.setExact(AlarmManager.RTC, triggerAtMillis, pendingIntent)
when {
isMarshmallowPlus() -> alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC, triggerAtMillis, pendingIntent)
else -> alarmManager.setExact(AlarmManager.RTC, triggerAtMillis, pendingIntent) //MAYBE RTC_WAKEUP
}
} }
fun Context.getFormattedTime(passedSeconds: Int, showSeconds: Boolean, makeAmPmSmaller: Boolean): SpannableString { fun Context.getFormattedTime(passedSeconds: Int, showSeconds: Boolean, makeAmPmSmaller: Boolean): SpannableString {

View File

@ -6,96 +6,112 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<com.simplemobiletools.commons.views.MyTextView <ScrollView
android:id="@+id/timer_time" android:id="@+id/timer_scroll"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="0dp"
android:layout_marginTop="@dimen/normal_margin" app:layout_constraintBottom_toTopOf="@+id/timer_play_pause"
android:background="?attr/selectableItemBackground"
android:gravity="center_horizontal"
android:padding="@dimen/small_margin"
android:textSize="@dimen/stopwatch_text_size"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent">
tools:text="00:00" />
<com.simplemobiletools.commons.views.MyTextView <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/timer_initial_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/activity_margin"
android:background="?attr/selectableItemBackground"
android:drawableLeft="@drawable/ic_timer"
android:drawablePadding="@dimen/normal_margin"
android:padding="@dimen/activity_margin"
android:textSize="@dimen/bigger_text_size"
app:layout_constraintTop_toBottomOf="@+id/timer_time"
tools:text="05:00" />
<RelativeLayout
android:id="@+id/timer_vibrate_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:padding="@dimen/activity_margin"
app:layout_constraintTop_toBottomOf="@+id/timer_initial_time">
<com.simplemobiletools.commons.views.MySwitchCompat
android:id="@+id/timer_vibrate"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:background="@null"
android:clickable="false"
android:drawableLeft="@drawable/ic_vibrate_vector"
android:drawablePadding="@dimen/normal_margin"
android:text="@string/vibrate"
android:textSize="@dimen/bigger_text_size" />
</RelativeLayout> <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/timer_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/normal_margin"
android:background="?attr/selectableItemBackground"
android:gravity="center_horizontal"
android:padding="@dimen/small_margin"
android:textSize="@dimen/stopwatch_text_size"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="00:00" />
<com.simplemobiletools.commons.views.MyTextView <com.simplemobiletools.commons.views.MyTextView
android:id="@+id/timer_sound" android:id="@+id/timer_initial_time"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground" android:layout_marginTop="@dimen/activity_margin"
android:drawableLeft="@drawable/ic_bell_vector" android:background="?attr/selectableItemBackground"
android:drawablePadding="@dimen/normal_margin" android:drawableLeft="@drawable/ic_timer"
android:padding="@dimen/activity_margin" android:drawablePadding="@dimen/normal_margin"
android:textSize="@dimen/bigger_text_size" android:padding="@dimen/activity_margin"
app:layout_constraintTop_toBottomOf="@+id/timer_vibrate_holder" android:textSize="@dimen/bigger_text_size"
tools:text="Default alarm" /> app:layout_constraintTop_toBottomOf="@+id/timer_time"
tools:text="05:00" />
<LinearLayout <RelativeLayout
android:layout_width="match_parent" android:id="@+id/timer_vibrate_holder"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:gravity="center_vertical" android:layout_height="wrap_content"
android:orientation="horizontal" android:background="?attr/selectableItemBackground"
android:paddingStart="@dimen/activity_margin" android:padding="@dimen/activity_margin"
android:paddingTop="@dimen/medium_margin" app:layout_constraintTop_toBottomOf="@+id/timer_initial_time">
android:paddingEnd="@dimen/activity_margin"
android:paddingBottom="@dimen/medium_margin"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/timer_sound">
<ImageView <com.simplemobiletools.commons.views.MySwitchCompat
android:id="@+id/timer_label_image" android:id="@+id/timer_vibrate"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/ic_label_vector" /> android:background="@null"
android:clickable="false"
android:drawableLeft="@drawable/ic_vibrate_vector"
android:drawablePadding="@dimen/normal_margin"
android:text="@string/vibrate"
android:textSize="@dimen/bigger_text_size" />
<com.simplemobiletools.commons.views.MyEditText </RelativeLayout>
android:id="@+id/timer_label"
android:layout_width="match_parent" <com.simplemobiletools.commons.views.MyTextView
android:layout_height="wrap_content" android:id="@+id/timer_sound"
android:layout_marginStart="10dp" android:layout_width="match_parent"
android:hint="@string/label" android:layout_height="wrap_content"
android:maxLines="1" android:background="?attr/selectableItemBackground"
android:singleLine="true" android:drawableLeft="@drawable/ic_bell_vector"
android:textCursorDrawable="@null" android:drawablePadding="@dimen/normal_margin"
android:textSize="@dimen/normal_text_size" /> android:padding="@dimen/activity_margin"
</LinearLayout> android:textSize="@dimen/bigger_text_size"
app:layout_constraintTop_toBottomOf="@+id/timer_vibrate_holder"
tools:text="Default alarm" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="@dimen/activity_margin"
android:paddingTop="@dimen/medium_margin"
android:paddingEnd="@dimen/activity_margin"
android:paddingBottom="@dimen/medium_margin"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/timer_sound">
<ImageView
android:id="@+id/timer_label_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_label_vector" />
<com.simplemobiletools.commons.views.MyEditText
android:id="@+id/timer_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:hint="@string/label"
android:maxLines="1"
android:singleLine="true"
android:textCursorDrawable="@null"
android:textSize="@dimen/normal_text_size" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
<ImageView <ImageView
android:id="@+id/timer_play_pause" android:id="@+id/timer_play_pause"
@ -108,22 +124,22 @@
android:src="@drawable/ic_play_vector" android:src="@drawable/ic_play_vector"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintStart_toStartOf="parent" />
<ImageView <ImageView
android:id="@+id/timer_reset" android:id="@+id/timer_reset"
android:layout_width="@dimen/stopwatch_button_small_size" android:layout_width="@dimen/stopwatch_button_small_size"
android:layout_height="@dimen/stopwatch_button_small_size" android:layout_height="@dimen/stopwatch_button_small_size"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/timer_play_pause"
android:background="?attr/selectableItemBackgroundBorderless" android:background="?attr/selectableItemBackgroundBorderless"
android:padding="@dimen/normal_margin" android:padding="@dimen/normal_margin"
android:src="@drawable/ic_reset_vector" android:src="@drawable/ic_reset_vector"
android:visibility="gone" android:visibility="gone"
tools:visibility="visible"
app:layout_constraintBottom_toBottomOf="@+id/timer_play_pause" app:layout_constraintBottom_toBottomOf="@+id/timer_play_pause"
app:layout_constraintEnd_toStartOf="@+id/timer_play_pause" app:layout_constraintEnd_toStartOf="@+id/timer_play_pause"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/timer_play_pause" /> app:layout_constraintTop_toTopOf="@+id/timer_play_pause" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>