diff --git a/.idea/misc.xml b/.idea/misc.xml index c425c9c..901e839 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -40,7 +40,7 @@ - + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 9cffa97..e183bf4 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,6 +1,6 @@ - diff --git a/googleioclock/src/main/java/com/lypeer/googleioclock/GoogleClock.java b/googleioclock/src/main/java/com/lypeer/googleioclock/GoogleClock.java index cd30864..08fdb64 100644 --- a/googleioclock/src/main/java/com/lypeer/googleioclock/GoogleClock.java +++ b/googleioclock/src/main/java/com/lypeer/googleioclock/GoogleClock.java @@ -8,6 +8,7 @@ import android.support.annotation.DimenRes; import android.support.annotation.StyleRes; import android.util.AttributeSet; +import android.util.Log; import android.view.ContextThemeWrapper; import android.view.View; import android.view.ViewGroup; @@ -211,7 +212,7 @@ private void updateClock(TimeUpdateEvent event) { updateImageView(mIvSecSingleDigits, mResList.get(event.getSecSingleDigits())); mSecSingleDigits = event.getSecSingleDigits(); } - updateImageView(mIvColon, R.drawable.svg_colon); + updateImageView(mIvColon, R.drawable.animated_colon); } /** @@ -229,19 +230,33 @@ private void updateImageView(ImageView target, int animTo) { } Drawable drawable = mContext.getDrawable(animTo); if (drawable == null) { + Log.e(mContext.getPackageCodePath(), "ResId is wrong ."); return; } - drawable.canApplyTheme(); - drawable.applyTheme(wrapper.getTheme()); target.setImageDrawable(drawable); + drawable.applyTheme(wrapper.getTheme()); if (drawable instanceof AnimatedVectorDrawable) { final AnimatedVectorDrawable animatedVectorDrawable = (AnimatedVectorDrawable) drawable; + if (mHourTenDigits != -1 && + mHourSingleDigits != -1 && + mMinTenDigits != -1 && + mMinSingleDigits != -1 && + mSecTenDigits != -1) { + animatedVectorDrawable.start(); + return; + } //todo there exists a bug in XiaoMi phone : when the time is 00:00 , //todo 11:11, 22:22(there are some same numbers) , only the first can work correctly - animatedVectorDrawable.start(); + //todo So I do this to avoid that . But this way is so fool . + target.post(new Runnable() { + @Override + public void run() { + animatedVectorDrawable.start(); + } + }); } } diff --git a/googleioclock/src/main/java/com/lypeer/googleioclock/service/LyClockService.java b/googleioclock/src/main/java/com/lypeer/googleioclock/service/LyClockService.java index 17bf642..a4d2481 100644 --- a/googleioclock/src/main/java/com/lypeer/googleioclock/service/LyClockService.java +++ b/googleioclock/src/main/java/com/lypeer/googleioclock/service/LyClockService.java @@ -1,7 +1,10 @@ package com.lypeer.googleioclock.service; import android.app.Service; +import android.content.BroadcastReceiver; +import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; import android.os.IBinder; import android.support.annotation.Nullable; @@ -41,6 +44,14 @@ public IBinder onBind(Intent intent) { return null; } + @Override + public void onCreate() { + super.onCreate(); + IntentFilter filter = new IntentFilter(); + filter.addAction(Intent.ACTION_SCREEN_ON); + registerReceiver(mReceiver , filter); + } + @Override public int onStartCommand(Intent intent, int flags, int startId) { beginClock(); @@ -135,11 +146,20 @@ private void initTime() { mSecTenDigits = seconds / 10; } + // Monitoring the screen on to reset time + private final BroadcastReceiver mReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + initTime(); + } + }; + @Override public void onDestroy() { super.onDestroy(); if (mTimer != null) { mTimer.cancel(); } + unregisterReceiver(mReceiver); } } diff --git a/googleioclock/src/main/res/drawable/animated_colon.xml b/googleioclock/src/main/res/drawable/animated_colon.xml new file mode 100644 index 0000000..d7b4d33 --- /dev/null +++ b/googleioclock/src/main/res/drawable/animated_colon.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/googleioclock/src/main/res/drawable/svg_7.xml b/googleioclock/src/main/res/drawable/svg_7.xml index 6aa04a7..6b41371 100644 --- a/googleioclock/src/main/res/drawable/svg_7.xml +++ b/googleioclock/src/main/res/drawable/svg_7.xml @@ -19,14 +19,14 @@ android:strokeWidth="?attr/lyThickness" /> diff --git a/googleioclock/src/main/res/layout/view_google_clock.xml b/googleioclock/src/main/res/layout/view_google_clock.xml index bba3029..53c5d9a 100644 --- a/googleioclock/src/main/res/layout/view_google_clock.xml +++ b/googleioclock/src/main/res/layout/view_google_clock.xml @@ -15,7 +15,7 @@ android:layout_width="48dp" android:layout_height="48dp" android:contentDescription="@string/cd_iv_hour_ten_digits" - android:src="@drawable/svg_0"/> + android:src="@drawable/svg_1"/> + android:layout_height="16dp"/> + \ No newline at end of file diff --git a/googleioclock/src/main/res/values/dimens.xml b/googleioclock/src/main/res/values/dimens.xml index 4d147a1..3e8eeae 100644 --- a/googleioclock/src/main/res/values/dimens.xml +++ b/googleioclock/src/main/res/values/dimens.xml @@ -1,5 +1,7 @@ - 4 + 8 1 + \ No newline at end of file diff --git a/googleioclock/src/main/res/values/styles.xml b/googleioclock/src/main/res/values/styles.xml index 7b2b741..16a9407 100644 --- a/googleioclock/src/main/res/values/styles.xml +++ b/googleioclock/src/main/res/values/styles.xml @@ -9,5 +9,7 @@ @color/colorDarkBlue @integer/lyThickness_4 @integer/lyThickness_1 + \ No newline at end of file