diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 7d4017a..f1e179c 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -1,20 +1,20 @@ + diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml index a5f05cd..086029f 100644 --- a/.idea/jarRepositories.xml +++ b/.idea/jarRepositories.xml @@ -21,5 +21,20 @@ \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 43dd18d..ef61796 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,9 +1,9 @@ - + - + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index 55aa465..c7767cd 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,8 +2,11 @@ - - + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/java/link/standen/michael/slideshow/ImageActivity.java b/app/src/main/java/link/standen/michael/slideshow/ImageActivity.java index f3f893c..6d20c11 100644 --- a/app/src/main/java/link/standen/michael/slideshow/ImageActivity.java +++ b/app/src/main/java/link/standen/michael/slideshow/ImageActivity.java @@ -27,8 +27,11 @@ import android.widget.Toast; import java.io.File; +import java.text.SimpleDateFormat; import java.util.Arrays; +import java.util.Calendar; import java.util.Collections; +import java.util.Date; import link.standen.michael.slideshow.listener.OnSwipeTouchListener; import link.standen.michael.slideshow.model.FileItem; @@ -67,6 +70,7 @@ public class ImageActivity extends BaseActivity implements ImageStrategy.ImageSt private static boolean SKIP_LONG_LOAD; private static boolean PRELOAD_IMAGES; private static boolean DELETE_WARNING; + private static boolean SHOW_CLOCK; private static final int LOCATION_DETAIL_MAX_LENGTH = 35; @@ -76,6 +80,7 @@ public class ImageActivity extends BaseActivity implements ImageStrategy.ImageSt private static final int LONG_LOAD_WARNING_DELAY = 5000; private View snackbarPlayingView; private View snackbarStoppedView; + private View clockText; private boolean isLoading = false; private Snackbar loadingSnackbar = null; private final Handler loadingHandler = new Handler(); @@ -129,6 +134,22 @@ public void run() { } }; + private static final int CLOCK_REFRESH_INT = 1000; + private final Handler clockHandler = new Handler(); + private final Runnable clockRunnable = new Runnable() { + public void run() { + clockHandler.postDelayed(clockRunnable, CLOCK_REFRESH_INT); + SimpleDateFormat clockFormat = new SimpleDateFormat("hh:mm aa"); + Date currentTime = Calendar.getInstance().getTime(); + TextView t = (TextView) clockText; + String clockString = clockFormat.format(currentTime); + if(clockString.substring(0,1).equals("0")){ + clockString = clockString.substring(1); + } + t.setText(clockString); + } + }; + /** * Some older devices needs a small delay between UI widget updates * and a change of the status and navigation bar. @@ -194,6 +215,7 @@ protected void onCreate(Bundle savedInstanceState) { } mVisible = true; + clockText = findViewById(R.id.clockText); mControlsView = findViewById(R.id.fullscreen_content_controls); mContentView = findViewById(R.id.fullscreen_content); mDetailsView = findViewById(R.id.image_details1); // Visible during slideshow play @@ -337,6 +359,8 @@ public void onClick(View v) { // Show the first image loadImage(imagePosition, false); + //Start clock + clockHandler.postDelayed(clockRunnable, CLOCK_REFRESH_INT); } /** @@ -455,6 +479,8 @@ private void loadPreferences(){ Log.d(TAG, String.format("PRELOAD_IMAGES: %b", PRELOAD_IMAGES)); DELETE_WARNING = preferences.getBoolean("delete_warning", true); Log.d(TAG, String.format("DELETE_WARNING: %b", DELETE_WARNING)); + SHOW_CLOCK = preferences.getBoolean("show_clock", true); + Log.d(TAG, String.format("SHOW_CLOCK: %b", SHOW_CLOCK)); // List prefs int action_on_complete = Arrays.asList(getResources().getStringArray(R.array.pref_list_values_action_on_complete)).indexOf( preferences.getString("action_on_complete", getResources().getString(R.string.pref_default_value_action_on_complete))); @@ -767,6 +793,9 @@ private void hide() { actionBar.hide(); } mControlsView.setVisibility(View.GONE); + if(SHOW_CLOCK) { + clockText.setVisibility(View.VISIBLE); + } mVisible = false; // Schedule a runnable to remove the status and navigation bar after a delay @@ -782,6 +811,7 @@ private void show() { mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); mDetailsView.setVisibility(View.GONE); + clockText.setVisibility(View.INVISIBLE); mVisible = true; // Schedule a runnable to display UI elements after a delay diff --git a/app/src/main/res/layout/activity_image.xml b/app/src/main/res/layout/activity_image.xml index 71a8555..e41e79f 100644 --- a/app/src/main/res/layout/activity_image.xml +++ b/app/src/main/res/layout/activity_image.xml @@ -14,6 +14,20 @@ android:contentDescription="@string/image_description"/> + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 9062209..98c284f 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -6,6 +6,8 @@ #E040FB #212121 #757575 + #FFFFFF + #88000000 #FFFFFF #BDBDBD diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a071bd5..a44938b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -196,4 +196,8 @@ Display a warning pop up before deleting an image. Disable at your own risk. + + Show clock + Display a clock over the slideshow. + diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index cf93c99..22da884 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -125,4 +125,10 @@ android:summary="@string/pref_description_delete_warning" android:title="@string/pref_title_delete_warning"/> + +