From 058e8546069332f21fd0af094101086fa8ea4783 Mon Sep 17 00:00:00 2001 From: Hyperling Date: Fri, 11 Jul 2025 13:13:04 -0700 Subject: [PATCH 01/24] Ensure app can be installed by future Android versions. --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 21a9460..4391fdd 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 28 + compileSdkVersion 36 buildToolsVersion '28.0.3' defaultConfig { applicationId "com.hyperling.apps.infinitetimer" minSdkVersion 15 - targetSdkVersion 28 + targetSdkVersion 36 versionCode 7 versionName "1.06" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" -- 2.49.1 From c57cdd0a3578a5ed6deffdec90db7f26de9015a5 Mon Sep 17 00:00:00 2001 From: Hyperling Date: Fri, 11 Jul 2025 13:38:27 -0700 Subject: [PATCH 02/24] Update gradle and android:gradle configurations so that the project builds successfully. --- app/build.gradle | 1 - build.gradle | 9 ++++++--- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4391fdd..dce3454 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,7 +2,6 @@ apply plugin: 'com.android.application' android { compileSdkVersion 36 - buildToolsVersion '28.0.3' defaultConfig { applicationId "com.hyperling.apps.infinitetimer" minSdkVersion 15 diff --git a/build.gradle b/build.gradle index cfcd767..bfc1796 100755 --- a/build.gradle +++ b/build.gradle @@ -2,7 +2,10 @@ buildscript { repositories { - jcenter() + mavenCentral() + maven { + url 'https://jitpack.io' + } google() maven { url 'https://maven.google.com/' @@ -10,7 +13,7 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:3.2.1' + classpath 'com.android.tools.build:gradle:8.11.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -19,7 +22,7 @@ buildscript { allprojects { repositories { - jcenter() + mavenCentral() google() } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 73eaf54..fdc97b1 100755 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Jan 10 06:37:42 CST 2019 +#Fri Jul 11 12:55:34 MST 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https://services.gradle.org/distributions/gradle-8.14.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip -- 2.49.1 From 9446f427c3e84a9a00f10050df503896b42e9030 Mon Sep 17 00:00:00 2001 From: Hyperling Date: Fri, 11 Jul 2025 13:38:53 -0700 Subject: [PATCH 03/24] Add link to a helpful upgrading article. --- README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fe8e612..d8e1b2f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ -# android-infinite-timer +# Infinite Timer -Timer which loops over the specified interval, playing your default notification sound each time it hits 0. \ No newline at end of file +Timer which loops over the specified interval, playing your default notification sound each time it hits 0. + +## Update Notes + +### 2025-07-11 +(This article)[https://sijus.medium.com/resurrecting-a-5-year-old-android-app-a-developers-journey-59d8f5689e5b] + was very helpful in getting this app updated from SDK 25 to 36. \ No newline at end of file -- 2.49.1 From f055efed025217775ca0e7f09e3c870e59625524 Mon Sep 17 00:00:00 2001 From: Hyperling Date: Fri, 11 Jul 2025 14:30:15 -0700 Subject: [PATCH 04/24] Project is now compiling and running on a test device successfully. --- app/build.gradle | 9 +++++---- app/src/main/AndroidManifest.xml | 6 +++--- app/src/main/res/menu/menu_main.xml | 4 +--- gradle/wrapper/gradle-wrapper.properties | 2 +- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index dce3454..25e6bfa 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,13 +1,14 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 36 + namespace "com.hyperling.apps.infinitetimer" + compileSdkVersion 35 defaultConfig { applicationId "com.hyperling.apps.infinitetimer" minSdkVersion 15 - targetSdkVersion 36 - versionCode 7 - versionName "1.06" + targetSdkVersion 35 + versionCode 8 + versionName "1.1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0f3a62d..cce3fae 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,5 @@ - + - + diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml index ddf5d9e..a7af6f4 100755 --- a/app/src/main/res/menu/menu_main.xml +++ b/app/src/main/res/menu/menu_main.xml @@ -5,20 +5,18 @@ android:id="@+id/action_milis" android:orderInCategory="100" android:title="@string/action_millis" - app:showAsAction="never" android:checkable="true" /> + /> \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index fdc97b1..d9bcc06 100755 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Fri Jul 11 12:55:34 MST 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -- 2.49.1 From a3fe0d4a2e71e40c3740c17725bc70169abf5d14 Mon Sep 17 00:00:00 2001 From: Hyperling Date: Fri, 11 Jul 2025 14:30:40 -0700 Subject: [PATCH 05/24] Delete deleteme's. --- .../deleteme/ExampleInstrumentedTest.java | 26 ------------------- .../deleteme/ExampleUnitTest.java | 17 ------------ 2 files changed, 43 deletions(-) delete mode 100755 app/src/androidTest/java/com/hyperling/apps/infinitetimer/deleteme/ExampleInstrumentedTest.java delete mode 100755 app/src/test/java/com/hyperling/apps/infinitetimer/deleteme/ExampleUnitTest.java diff --git a/app/src/androidTest/java/com/hyperling/apps/infinitetimer/deleteme/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/hyperling/apps/infinitetimer/deleteme/ExampleInstrumentedTest.java deleted file mode 100755 index 068a20c..0000000 --- a/app/src/androidTest/java/com/hyperling/apps/infinitetimer/deleteme/ExampleInstrumentedTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.hyperling.apps.infinitetimer.deleteme; - -import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; - -import org.junit.Test; -import org.junit.runner.RunWith; - -import static org.junit.Assert.*; - -/** - * Instrumentation test, which will execute on an Android device. - * - * @see Testing documentation - */ -@RunWith(AndroidJUnit4.class) -public class ExampleInstrumentedTest { - @Test - public void useAppContext() throws Exception { - // Context of the app under test. - Context appContext = InstrumentationRegistry.getTargetContext(); - - assertEquals("infinitetimer.apps.hyperling.com.infinitetimer", appContext.getPackageName()); - } -} diff --git a/app/src/test/java/com/hyperling/apps/infinitetimer/deleteme/ExampleUnitTest.java b/app/src/test/java/com/hyperling/apps/infinitetimer/deleteme/ExampleUnitTest.java deleted file mode 100755 index 38fc46d..0000000 --- a/app/src/test/java/com/hyperling/apps/infinitetimer/deleteme/ExampleUnitTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hyperling.apps.infinitetimer.deleteme; - -import org.junit.Test; - -import static org.junit.Assert.*; - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see Testing documentation - */ -public class ExampleUnitTest { - @Test - public void addition_isCorrect() throws Exception { - assertEquals(4, 2 + 2); - } -} \ No newline at end of file -- 2.49.1 From 15ff7fa1cff954cda01ba6163a7f9fff020a5448 Mon Sep 17 00:00:00 2001 From: Hyperling Date: Fri, 11 Jul 2025 14:52:37 -0700 Subject: [PATCH 06/24] Clean up extra lines. --- app/src/main/AndroidManifest.xml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cce3fae..b1163f6 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -8,11 +8,9 @@ android:supportsRtl="true" android:theme="@style/InfiniteTimer" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"> - + - -- 2.49.1 From 4cd8641ec25b526d6e9e3e7fcbb20bd94e8b7f9b Mon Sep 17 00:00:00 2001 From: Hyperling Date: Fri, 11 Jul 2025 14:52:47 -0700 Subject: [PATCH 07/24] Update version. --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8039e06..3bec287 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,7 +1,7 @@ Infinite Timer - Test v201610291024 + Test v20250711 com.hyperling.apps.infinitetimer -- 2.49.1 From fc6ff2e5cc02c57f3681c6cebf6996c9a3fdfcef Mon Sep 17 00:00:00 2001 From: Hyperling Date: Fri, 11 Jul 2025 14:53:09 -0700 Subject: [PATCH 08/24] Begin working on UI fixes. --- .../hyperling/apps/infinitetimer/MainActivity.java | 4 ++++ app/src/main/res/layout/activity_main.xml | 14 +++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/hyperling/apps/infinitetimer/MainActivity.java b/app/src/main/java/com/hyperling/apps/infinitetimer/MainActivity.java index ed37980..361705e 100755 --- a/app/src/main/java/com/hyperling/apps/infinitetimer/MainActivity.java +++ b/app/src/main/java/com/hyperling/apps/infinitetimer/MainActivity.java @@ -8,6 +8,7 @@ import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; @@ -493,6 +494,9 @@ public class MainActivity extends AppCompatActivity { sharedPreferences.edit().putBoolean(keyServiceRunning, false).apply(); recoverScreen(); + + ActionBar actionBar = getSupportActionBar(); + actionBar.hide(); } private void flipInputTexts() { diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index f7238ed..2fb7eb6 100755 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -10,11 +10,23 @@ android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.hyperling.apps.infinitetimer.MainActivity"> + + Date: Sat, 12 Jul 2025 12:30:12 -0700 Subject: [PATCH 09/24] Remove the temporary action bar hide. --- .../java/com/hyperling/apps/infinitetimer/MainActivity.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/src/main/java/com/hyperling/apps/infinitetimer/MainActivity.java b/app/src/main/java/com/hyperling/apps/infinitetimer/MainActivity.java index 361705e..7c046e9 100755 --- a/app/src/main/java/com/hyperling/apps/infinitetimer/MainActivity.java +++ b/app/src/main/java/com/hyperling/apps/infinitetimer/MainActivity.java @@ -494,9 +494,6 @@ public class MainActivity extends AppCompatActivity { sharedPreferences.edit().putBoolean(keyServiceRunning, false).apply(); recoverScreen(); - - ActionBar actionBar = getSupportActionBar(); - actionBar.hide(); } private void flipInputTexts() { -- 2.49.1 From 23772cedcb0e38fc3bc8da26f58ccdcc97c0876b Mon Sep 17 00:00:00 2001 From: Hyperling Date: Sat, 12 Jul 2025 12:30:44 -0700 Subject: [PATCH 10/24] Remove the temporary app name header and add a margin for the true action bar. --- app/src/main/res/layout/activity_main.xml | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 2fb7eb6..6f0e2d4 100755 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -4,29 +4,18 @@ android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" + android:layout_marginTop="?android:actionBarSize" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.hyperling.apps.infinitetimer.MainActivity"> - - Date: Sat, 12 Jul 2025 12:38:08 -0700 Subject: [PATCH 11/24] Change theme to DayNight rather than hardcoded to Light. Doesn't change much right now. --- app/src/main/res/values/styles.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 4785832..c0cfd8f 100755 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,7 +1,7 @@ - -