0.1.0 #4

Merged
me merged 12 commits from dev into main 2026-11-04 09:14:03 -07:00
40 changed files with 185 additions and 90 deletions

No files matched your search

+27
View File
@@ -0,0 +1,27 @@
# Changelog
Version history for HyperGames.
## 0.1.0 (2026-11-04)
**Internal Facelift**
- Newer Android SDKs
- Icon is the correct size, no longer gets padded.
- Screens no longer get hidden by action bar.
- Upgrades
- Migrated from AppCompat libraries to AndroidX.
- Updated plugin versions such as AGP and Gradle.
- APK for release is now filtered to arm-v8a.
minSDK is now 21 from 14.
## 0.0.11 (2025-07-22)
- Minify the APK. Reduced from 1.7MB to 1.3MB with a single setting change.
- Deleted APK from the previous release since no other changes were made.
## 0.0.10 (2025-07-22)
- Begin targeting SDK 36 (Android 16).
- Remove ad-related code.
-38
View File
@@ -1,38 +0,0 @@
apply plugin: 'com.android.application'
android {
namespace "com.hyperling.apps.games"
compileSdkVersion 36
defaultConfig {
applicationId "apps.hyperling.com.platformer"
minSdkVersion 14
targetSdkVersion 36
versionCode 12
versionName "0.0.11"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
/*
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'
*/
implementation fileTree(dir: 'libs', include: ['*.jar'])
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
// https://mvnrepository.com/artifact/com.android.support/appcompat-v7
implementation group: 'com.android.support', name: 'appcompat-v7', version: '28.0.0'
}
+50
View File
@@ -0,0 +1,50 @@
plugins {
alias(libs.plugins.androidApplication)
}
android {
namespace = "com.hyperling.apps.games"
compileSdk = 37
defaultConfig {
applicationId = "apps.hyperling.com.platformer"
minSdk = 21
targetSdk = 37
versionCode = 13
versionName = "0.1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlin {
compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
}
}
buildTypes {
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
ndk {
abiFilters += listOf("arm64-v8a")
}
}
}
}
dependencies {
implementation(libs.androidx.appcompat)
testImplementation(libs.junit)
androidTestImplementation(libs.junit.ext)
androidTestImplementation(libs.espresso.core)
}
+2 -7
View File
@@ -1,11 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools">
package="com.hyperling.apps.games">
<!-- Include required permissions for Google Mobile Ads to run. -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application <application
android:allowBackup="true" android:allowBackup="true"
@@ -35,4 +30,4 @@
<activity android:name="com.hyperling.apps.games.HighScoreActivity"/> <activity android:name="com.hyperling.apps.games.HighScoreActivity"/>
</application> </application>
</manifest> </manifest>
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

@@ -1,7 +1,7 @@
package com.hyperling.apps.games; package com.hyperling.apps.games;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
@@ -1,7 +1,7 @@
package com.hyperling.apps.games; package com.hyperling.apps.games;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.widget.LinearLayout; import android.widget.LinearLayout;
@@ -2,7 +2,7 @@ package com.hyperling.apps.games;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
@@ -3,7 +3,7 @@ package com.hyperling.apps.games;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import android.view.View; import android.view.View;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.Button; import android.widget.Button;
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="199"
android:viewportHeight="168.75">
<group android:scaleX="0.49232432"
android:scaleY="0.41748607"
android:translateX="50.266323"
android:translateY="49.98335">
<group android:translateY="133.59375">
<path android:pathData="M76.78125,-61.734375L76.78125,-42.75L24.265625,-42.75L24.265625,-61.734375L76.78125,-61.734375ZM32.484375,-102.375L32.484375,-0L7.8125,-0L7.8125,-102.375L32.484375,-102.375ZM93.375,-102.375L93.375,-0L68.765625,-0L68.765625,-102.375L93.375,-102.375Z"
android:fillColor="#000000"/>
<path android:pathData="M192.54688,-54.703125L192.54688,-12.65625Q189.95312,-9.78125,184.5625,-6.5Q179.1875,-3.234375,171.03125,-0.90625Q162.875,1.40625,151.84375,1.40625Q141.64062,1.40625,133.34375,-1.859375Q125.046875,-5.140625,119.109375,-11.5Q113.171875,-17.859375,109.96875,-27.109375Q106.765625,-36.359375,106.765625,-48.3125L106.765625,-54Q106.765625,-65.953125,110,-75.234375Q113.234375,-84.515625,119.109375,-90.875Q124.984375,-97.25,132.95312,-100.546875Q140.9375,-103.859375,150.5,-103.859375Q164.64062,-103.859375,173.5,-99.390625Q182.35938,-94.921875,186.92188,-87.078125Q191.5,-79.25,192.48438,-68.984375L168.78125,-68.984375Q168.07812,-74.046875,166.14062,-77.59375Q164.21875,-81.140625,160.625,-83Q157.04688,-84.875,151.34375,-84.875Q146.92188,-84.875,143.29688,-82.96875Q139.67188,-81.078125,137.14062,-77.234375Q134.60938,-73.40625,133.23438,-67.640625Q131.875,-61.875,131.875,-54.140625L131.875,-48.3125Q131.875,-40.640625,133.17188,-34.875Q134.46875,-29.109375,137.10938,-25.28125Q139.75,-21.453125,143.85938,-19.515625Q147.96875,-17.578125,153.59375,-17.578125Q157.53125,-17.578125,160.34375,-18.25Q163.15625,-18.921875,165.01562,-19.9375Q166.89062,-20.953125,167.875,-21.875L167.875,-37.765625L150.71875,-37.765625L150.71875,-54.703125L192.54688,-54.703125Z"
android:fillColor="#000000"/>
</group>
</group>
</vector>
@@ -9,7 +9,7 @@
android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" android:paddingTop="@dimen/activity_vertical_margin"
android:layout_marginTop="?android:actionBarSize" android:fitsSystemWindows="true"
tools:context="com.hyperling.apps.games.HighScoreActivity"> tools:context="com.hyperling.apps.games.HighScoreActivity">
<ScrollView <ScrollView
+1 -1
View File
@@ -9,7 +9,7 @@
android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" android:paddingTop="@dimen/activity_vertical_margin"
android:layout_marginTop="?android:actionBarSize" android:fitsSystemWindows="true"
tools:context="com.hyperling.apps.games.MainActivity"> tools:context="com.hyperling.apps.games.MainActivity">
<ScrollView <ScrollView
+1 -1
View File
@@ -10,7 +10,7 @@
android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" android:paddingTop="@dimen/activity_vertical_margin"
android:layout_marginTop="?android:actionBarSize" android:fitsSystemWindows="true"
tools:context="com.hyperling.apps.games.OptionsActivity"> tools:context="com.hyperling.apps.games.OptionsActivity">
<ScrollView <ScrollView
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_monochrome"/>
</adaptive-icon>
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_monochrome"/>
</adaptive-icon>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#6400C8</color>
</resources>
+9 -4
View File
@@ -1,11 +1,16 @@
AuthorName: 'Chad Michael "Hyperling" Greenwood' AuthorName: 'Chad Michael "Hyperling" Greenwood'
SourceCode: 'https://git.hyperling.com/me/android-hypergames/' AuthorWebSite: 'https://hyperling.com/about/'
WebSite: 'https://hyperling.com/apps' Donate: 'https://hyperling.com/donate/'
Liberapay: 'HyperVegan'
Bitcoin: 'bc1qsfe8dkvry3d34kztz449gkq67wq8fu2nkgfkh0'
Litecoin: 'ltc1qavmpu5d6ljntxsd6jj548m4yys83zwscl0dzkx'
IssueTracker: 'https://hyperling.com/contact/'
Categories: Categories:
- fdroid - fdroid
- hyperling - hyperling
- games - games
CurrentVersionCode: 2147483647
IssueTracker: 'mailto:me@hyperling.com'
Name: Hyper Games Name: Hyper Games
AuthorEmail: 'me+hypergames@hyperling.com'
Summary: 'Started as a fun project for learning. Playable but unfinished.' Summary: 'Started as a fun project for learning. Playable but unfinished.'
SourceCode: 'https://git.hyperling.com/me/android-hypergames/'
WebSite: 'https://hyperling.com/apps/#games'
-32
View File
@@ -1,32 +0,0 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
maven {
url 'https://jitpack.io'
}
google()
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
dependencies {
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
}
}
allprojects {
repositories {
mavenCentral()
google()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
+1
View File
@@ -0,0 +1 @@
// Root build file - plugins managed via gradle/libs.versions.toml
+4
View File
@@ -15,3 +15,7 @@ org.gradle.jvmargs=-Xmx1536m
# This option should only be used with decoupled projects. More details, visit # This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true # org.gradle.parallel=true
# Move to AndroidX
android.useAndroidX=true
# android.enableJetifier removed - all support libs migrated to AndroidX
+12
View File
@@ -0,0 +1,12 @@
#This file is generated by updateDaemonJvm
toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/cf726b4a1c84b50457225f9bba6d7650/redirect
toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/fa1e318c287360478e3c83a9a3ef1007/redirect
toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/cf726b4a1c84b50457225f9bba6d7650/redirect
toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/fa1e318c287360478e3c83a9a3ef1007/redirect
toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/c2dd35c9d0aaf0ba6ad0791320f99dfc/redirect
toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/e5810bd7fd1f8a586644409d395a7e55/redirect
toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/cf726b4a1c84b50457225f9bba6d7650/redirect
toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/fa1e318c287360478e3c83a9a3ef1007/redirect
toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/7b3c4877c0749019e6805bb61e421497/redirect
toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/d76df094a9cbbabd3b08251f9e61444a/redirect
toolchainVersion=25
+19
View File
@@ -0,0 +1,19 @@
[versions]
agp = "9.5.0"
kotlin = "2.4.21"
coreKtx = "1.19.1"
appcompat = "1.7.1"
espressoCore = "3.7.0"
junit = "4.13.2"
junitVersion = "1.3.0"
[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
junit-ext = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
[plugins]
androidApplication = { id = "com.android.application", version.ref = "agp" }
kotlinCompose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
+1 -1
View File
@@ -1,6 +1,6 @@
#Thu Jan 10 06:49:36 CST 2019 #Thu Jan 10 06:49:36 CST 2019
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.8.2-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
-1
View File
@@ -1 +0,0 @@
include ':app'
+19
View File
@@ -0,0 +1,19 @@
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
rootProject.name = "HyperGames"
include(":app")