Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
43e4a7f188 | ||
|
|
c672e84610 | ||
|
|
ee792f4aa9 | ||
|
|
d672c3a709 | ||
|
|
e6a3c04312 | ||
|
|
f7ae0d4f73 | ||
|
|
3798846f72 | ||
|
|
47940a16b0 | ||
|
|
9aa192df0e | ||
|
|
bdaa98f358 | ||
|
|
bfcc938b20 | ||
|
|
2d7a4894ee | ||
|
|
4cb51c8528 | ||
|
|
1e1675ce8d | ||
|
|
323e334311 | ||
|
|
c5df4c4371 | ||
|
|
fe8c97766b | ||
|
|
02144dbc27 | ||
|
|
3df0ead4b7 | ||
|
|
9c895c1d72 | ||
|
|
eedf4e22e7 | ||
|
|
1a2fe5e25f | ||
|
|
b2c9cd6cb6 |
No files matched your search
@@ -1,2 +1,3 @@
|
||||
# android-hypergames
|
||||
|
||||
Games written for fun to practice Android programming and animation.
|
||||
@@ -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.
|
||||
@@ -1,30 +0,0 @@
|
||||
apply plugin: 'com.android.application'
|
||||
|
||||
android {
|
||||
compileSdkVersion 24
|
||||
buildToolsVersion "24.0.2"
|
||||
defaultConfig {
|
||||
applicationId "apps.hyperling.com.platformer"
|
||||
minSdkVersion 15
|
||||
targetSdkVersion 24
|
||||
versionCode 10
|
||||
versionName "0.9"
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
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'
|
||||
compile 'com.google.android.gms:play-services-ads:9.8.0'
|
||||
testCompile 'junit:junit:4.12'
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
package com.hyperling.apps.games;
|
||||
|
||||
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 <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
||||
*/
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class ExampleInstrumentedTest {
|
||||
@Test
|
||||
public void useAppContext() throws Exception {
|
||||
// Context of the app under test.
|
||||
Context appContext = InstrumentationRegistry.getTargetContext();
|
||||
|
||||
assertEquals("apps.hyperling.com.platformer", appContext.getPackageName());
|
||||
}
|
||||
}
|
||||
@@ -1,29 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
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" />
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:icon="@drawable/icon"
|
||||
android:roundIcon="@drawable/icon"
|
||||
android:label="@string/app_name"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme"
|
||||
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize">
|
||||
<!-- android:configChanges="orientation|keyboardHidden|screenSize" -->
|
||||
|
||||
<!-- This meta-data tag is required to use Google Play Services. -->
|
||||
<meta-data
|
||||
android:name="com.google.android.gms.version"
|
||||
android:value="@integer/google_play_services_version" />
|
||||
|
||||
<activity android:name="com.hyperling.apps.games.MainActivity">
|
||||
<activity android:name="com.hyperling.apps.games.MainActivity"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
|
After Width: | Height: | Size: 14 KiB |
@@ -1,36 +0,0 @@
|
||||
package com.hyperling.apps.games;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.view.View;
|
||||
|
||||
import com.google.android.gms.ads.AdRequest;
|
||||
import com.google.android.gms.ads.AdView;
|
||||
import com.google.android.gms.ads.MobileAds;
|
||||
|
||||
/**
|
||||
* Created by ling on 12/26/16.
|
||||
*/
|
||||
|
||||
public class AdsHelper {
|
||||
|
||||
// To be called in onResume in Activities
|
||||
public static void toggleAds(SharedPreferences sharedPreferences, String adsKey, Context applicationContext, AdView mAdView){
|
||||
// Enable ads?
|
||||
boolean adsEnabled = sharedPreferences.getBoolean(adsKey, false);
|
||||
if (adsEnabled) {
|
||||
mAdView.setVisibility(View.VISIBLE);
|
||||
MobileAds.initialize(applicationContext, "ca-app-pub-3940256099942544~3347511713");
|
||||
AdRequest adRequest = new AdRequest.Builder()
|
||||
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
|
||||
.addTestDevice("C6A494DC6E7C9AC29102694D48487084") // Nexus 7
|
||||
.addTestDevice("6545BCC9B60A394005546783687339B7") // Moto G
|
||||
.build();
|
||||
mAdView.loadAd(adRequest);
|
||||
}
|
||||
else{
|
||||
mAdView.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.hyperling.apps.games;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
package com.hyperling.apps.games;
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.google.android.gms.ads.AdView;
|
||||
|
||||
public class HighScoreActivity extends AppCompatActivity {
|
||||
|
||||
private String sharedPreferencesKey, adsKey, TAG, html;
|
||||
private String sharedPreferencesKey, TAG, html;
|
||||
private String[] allBirdScoreKeys, allChickenScoreKeys;
|
||||
|
||||
private SharedPreferences sharedPreferences;
|
||||
@@ -29,7 +27,6 @@ public class HighScoreActivity extends AppCompatActivity {
|
||||
sharedPreferencesKey = getString(R.string.sharedPreferencesKey);
|
||||
allBirdScoreKeys = getResources().getStringArray(R.array.allBirdScoreKeys);
|
||||
allChickenScoreKeys = getResources().getStringArray(R.array.allChickenScoreKeys);
|
||||
adsKey = getString(R.string.adsKey);
|
||||
|
||||
// Shared preferences
|
||||
sharedPreferences = getSharedPreferences(sharedPreferencesKey, MODE_PRIVATE);
|
||||
@@ -89,7 +86,6 @@ public class HighScoreActivity extends AppCompatActivity {
|
||||
@Override
|
||||
protected void onResume() {
|
||||
leaderboardHelper = new LeaderboardHelper();
|
||||
displayAds();
|
||||
super.onResume();
|
||||
|
||||
Runnable getHTML = new Runnable() {
|
||||
@@ -106,10 +102,6 @@ public class HighScoreActivity extends AppCompatActivity {
|
||||
Log.d(TAG, "HighScoreActivity.onResume() html=" + html);
|
||||
}
|
||||
|
||||
private void displayAds(){
|
||||
AdsHelper.toggleAds(sharedPreferences, adsKey, getApplicationContext(), (AdView) findViewById(R.id.adViewHighScores));
|
||||
}
|
||||
|
||||
private boolean isNumeric(char c){
|
||||
try{
|
||||
String s = "" + c;
|
||||
|
||||
@@ -2,19 +2,17 @@ package com.hyperling.apps.games;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
|
||||
import com.google.android.gms.ads.AdView;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
private Button btnGameBird, btnGameCow, btnGamePig, btnGameChicken, btnGameCat, btnGameSquirrel, btnOptions, btnHighScores, btnHelp;
|
||||
|
||||
private String TAG, sharedPreferencesKey, adsKey, birdScoreKey, chickenScoreKey;
|
||||
private String TAG, sharedPreferencesKey, birdScoreKey, chickenScoreKey;
|
||||
|
||||
private SharedPreferences sharedPreferences;
|
||||
|
||||
@@ -28,7 +26,6 @@ public class MainActivity extends AppCompatActivity {
|
||||
|
||||
// Keys
|
||||
sharedPreferencesKey = getString(R.string.sharedPreferencesKey);
|
||||
adsKey = getString(R.string.adsKey);
|
||||
birdScoreKey = getString(R.string.birdScoreKey);
|
||||
chickenScoreKey = getString(R.string.chickenScoreKey);
|
||||
|
||||
@@ -101,8 +98,6 @@ public class MainActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
displayAds();
|
||||
|
||||
// Append high scores to button text
|
||||
int score;
|
||||
String newText;
|
||||
@@ -160,10 +155,6 @@ public class MainActivity extends AppCompatActivity {
|
||||
startActivity(options);
|
||||
}
|
||||
|
||||
private void displayAds(){
|
||||
AdsHelper.toggleAds(sharedPreferences, adsKey, getApplicationContext(), (AdView) findViewById(R.id.adViewMain));
|
||||
}
|
||||
|
||||
private void doHighScoresButton(){
|
||||
Intent highScores = new Intent(MainActivity.this, HighScoreActivity.class);
|
||||
startActivity(highScores);
|
||||
|
||||
@@ -3,30 +3,26 @@ package com.hyperling.apps.games;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.RelativeLayout;
|
||||
|
||||
import com.google.android.gms.ads.AdRequest;
|
||||
import com.google.android.gms.ads.AdView;
|
||||
import com.google.android.gms.ads.MobileAds;
|
||||
|
||||
/**
|
||||
* Created by ling on 12/22/16.
|
||||
*/
|
||||
|
||||
public class OptionsActivity extends AppCompatActivity {
|
||||
|
||||
private String sharedPreferencesKey, adsKey, higherQualityKey, fpsKey;
|
||||
private String sharedPreferencesKey, higherQualityKey, fpsKey;
|
||||
|
||||
private SharedPreferences sharedPreferences;
|
||||
|
||||
private RelativeLayout layoutAds, layoutHigherQuality, layoutFPS;
|
||||
private CheckBox cbAds, cbHigherQuality, cbFPS;
|
||||
private boolean adsEnabled, higherQualityEnabled, fpsEnabled;
|
||||
private RelativeLayout layoutHigherQuality, layoutFPS;
|
||||
private CheckBox cbHigherQuality, cbFPS;
|
||||
private boolean higherQualityEnabled, fpsEnabled;
|
||||
|
||||
private Button btnDeletePreferences, btnConfirmDeletePreferences;
|
||||
|
||||
@@ -42,24 +38,6 @@ public class OptionsActivity extends AppCompatActivity {
|
||||
sharedPreferencesKey = getString(R.string.sharedPreferencesKey);
|
||||
sharedPreferences = getSharedPreferences(sharedPreferencesKey, MODE_PRIVATE);
|
||||
|
||||
// Set up Ads
|
||||
adsKey = getString(R.string.adsKey);
|
||||
layoutAds = (RelativeLayout) findViewById(R.id.optionAdsLayout);
|
||||
cbAds = (CheckBox) findViewById(R.id.optionAdsCheckBox);
|
||||
layoutAds.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
flipOption(adsKey);
|
||||
}
|
||||
});
|
||||
cbAds.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
flipOption(adsKey);
|
||||
}
|
||||
});
|
||||
setAds();
|
||||
|
||||
// Higher Quality Content
|
||||
higherQualityKey = getString(R.string.higherQualityKey);
|
||||
layoutHigherQuality = (RelativeLayout) findViewById(R.id.optionHigherQualityLayout);
|
||||
@@ -123,10 +101,7 @@ public class OptionsActivity extends AppCompatActivity {
|
||||
editor.apply();
|
||||
|
||||
// Change the box
|
||||
if (key.equals(adsKey)){
|
||||
setAds();
|
||||
}
|
||||
else if (key.equals(higherQualityKey)){
|
||||
if (key.equals(higherQualityKey)){
|
||||
setHigherQuality();
|
||||
}
|
||||
else if (key.equals(fpsKey)){
|
||||
@@ -134,31 +109,6 @@ public class OptionsActivity extends AppCompatActivity {
|
||||
}
|
||||
}
|
||||
|
||||
private void setAds(){
|
||||
adsEnabled = sharedPreferences.getBoolean(adsKey, false);
|
||||
cbAds.setChecked(adsEnabled);
|
||||
toggleAds();
|
||||
}
|
||||
|
||||
private void toggleAds(){
|
||||
// Enable ads?
|
||||
adsEnabled = sharedPreferences.getBoolean(adsKey, false);
|
||||
AdView mAdView = (AdView) findViewById(R.id.adViewOptions);
|
||||
if (adsEnabled) {
|
||||
mAdView.setVisibility(View.VISIBLE);
|
||||
MobileAds.initialize(getApplicationContext(), "ca-app-pub-3940256099942544~3347511713");
|
||||
AdRequest adRequest = new AdRequest.Builder()
|
||||
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
|
||||
.addTestDevice("C6A494DC6E7C9AC29102694D48487084") // Nexus 7
|
||||
.addTestDevice("6545BCC9B60A394005546783687339B7") // Moto G
|
||||
.build();
|
||||
mAdView.loadAd(adRequest);
|
||||
}
|
||||
else{
|
||||
mAdView.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
public void setHigherQuality() {
|
||||
higherQualityEnabled = sharedPreferences.getBoolean(higherQualityKey, false);
|
||||
cbHigherQuality.setChecked(higherQualityEnabled);
|
||||
|
||||
@@ -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,25 +9,16 @@
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||
android:paddingTop="@dimen/activity_vertical_margin"
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context="com.hyperling.apps.games.HighScoreActivity">
|
||||
|
||||
<com.google.android.gms.ads.AdView
|
||||
android:id="@+id/adViewHighScores"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:visibility="gone"
|
||||
ads:adSize="BANNER"
|
||||
ads:adUnitId="@string/interstitial_ad_unit_id_high_score" />
|
||||
|
||||
<ScrollView
|
||||
android:id="@+id/scrollViewHighScore"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_above="@+id/adViewHighScores">
|
||||
android:layout_alignParentBottom="true">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -9,25 +9,16 @@
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||
android:paddingTop="@dimen/activity_vertical_margin"
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context="com.hyperling.apps.games.MainActivity">
|
||||
|
||||
<com.google.android.gms.ads.AdView
|
||||
android:id="@+id/adViewMain"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:visibility="gone"
|
||||
ads:adSize="BANNER"
|
||||
ads:adUnitId="@string/interstitial_ad_unit_id_main" />
|
||||
|
||||
<ScrollView
|
||||
android:id="@+id/scrollViewMain"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_above="@+id/adViewMain">
|
||||
android:layout_alignParentBottom="true">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
@@ -10,23 +10,14 @@
|
||||
android:paddingLeft="@dimen/activity_horizontal_margin"
|
||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||
android:paddingTop="@dimen/activity_vertical_margin"
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context="com.hyperling.apps.games.OptionsActivity">
|
||||
|
||||
<com.google.android.gms.ads.AdView
|
||||
android:id="@+id/adViewOptions"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:visibility="gone"
|
||||
ads:adSize="BANNER"
|
||||
ads:adUnitId="@string/interstitial_ad_unit_id_options" />
|
||||
|
||||
<ScrollView
|
||||
android:id="@+id/scrollViewOptions"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@+id/adViewOptions"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerInParent="true"
|
||||
android:layout_alignParentTop="true">
|
||||
|
||||
@@ -35,6 +26,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<!--
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -77,6 +69,7 @@
|
||||
<Space
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/spaceSize" />
|
||||
-->
|
||||
|
||||
<TextView
|
||||
android:text="@string/optionGroupInGame"
|
||||
|
||||
@@ -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>
|
||||
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
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>
|
||||
@@ -36,7 +36,6 @@
|
||||
<string name="optionGroupOnline">Online</string>
|
||||
<string name="optionGroupOther">Other</string>
|
||||
|
||||
<string name="optionAds">Allow Ads on Menu Screens?</string>
|
||||
<string name="optionPracticeRound">Play Practice Round when Starting New Games?</string>
|
||||
<string name="optionHigherQuality">Allow Higher Quality Images and Animations?</string>
|
||||
<string name="optionFPS">Display FPS?</string>
|
||||
@@ -52,7 +51,6 @@
|
||||
<!-- Shared Preferences -->
|
||||
<string name="sharedPreferencesKey">HyperGames</string>
|
||||
<!-- Options -->
|
||||
<string name="adsKey">Ads</string>
|
||||
<string name="practiceRoundKey">Practice</string>
|
||||
<string name="higherQualityKey">HigherQuality</string>
|
||||
<string name="fpsKey">FPS</string>
|
||||
@@ -82,11 +80,4 @@
|
||||
<item>ChickenScore008(Alpha)</item>
|
||||
</string-array>
|
||||
|
||||
<!-- -
|
||||
This is an ad unit ID for an interstitial test ad. Replace with your own interstitial ad unit id.
|
||||
For more information, see https://support.google.com/admob/answer/3052638
|
||||
<!- -->
|
||||
<string name="interstitial_ad_unit_id_main">ca-app-pub-9712416021907617/7877767281</string>
|
||||
<string name="interstitial_ad_unit_id_options">ca-app-pub-9712416021907617/3307966880</string>
|
||||
<string name="interstitial_ad_unit_id_high_score">ca-app-pub-9712416021907617/4784700088</string>
|
||||
</resources>
|
||||
@@ -1,17 +0,0 @@
|
||||
package com.hyperling.apps.games;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* Example local unit test, which will execute on the development machine (host).
|
||||
*
|
||||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
||||
*/
|
||||
public class ExampleUnitTest {
|
||||
@Test
|
||||
public void addition_isCorrect() throws Exception {
|
||||
assertEquals(4, 2 + 2);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
AuthorName: 'Chad Michael "Hyperling" Greenwood'
|
||||
AuthorWebSite: 'https://hyperling.com/about/'
|
||||
Donate: 'https://hyperling.com/donate/'
|
||||
Liberapay: 'HyperVegan'
|
||||
Bitcoin: 'bc1qsfe8dkvry3d34kztz449gkq67wq8fu2nkgfkh0'
|
||||
Litecoin: 'ltc1qavmpu5d6ljntxsd6jj548m4yys83zwscl0dzkx'
|
||||
IssueTracker: 'https://hyperling.com/contact/'
|
||||
Categories:
|
||||
- fdroid
|
||||
- hyperling
|
||||
- games
|
||||
Name: Hyper Games
|
||||
AuthorEmail: 'me+hypergames@hyperling.com'
|
||||
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'
|
||||
@@ -1,24 +0,0 @@
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
jcenter()
|
||||
google()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.2.1'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
}
|
||||
}
|
||||
|
||||
allprojects {
|
||||
repositories {
|
||||
jcenter()
|
||||
}
|
||||
}
|
||||
|
||||
task clean(type: Delete) {
|
||||
delete rootProject.buildDir
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
// Root build file - plugins managed via gradle/libs.versions.toml
|
||||
@@ -15,3 +15,7 @@ org.gradle.jvmargs=-Xmx1536m
|
||||
# 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
|
||||
# org.gradle.parallel=true
|
||||
|
||||
# Move to AndroidX
|
||||
android.useAndroidX=true
|
||||
# android.enableJetifier removed - all support libs migrated to AndroidX
|
||||
@@ -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
|
||||
@@ -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,6 +1,6 @@
|
||||
#Thu Jan 10 06:49:36 CST 2019
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.8.2-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
|
||||
@@ -1 +0,0 @@
|
||||
include ':app'
|
||||
@@ -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")
|
||||