Skip to content

Commit 15184f7

Browse files
committed
Version 1.1.8
1 parent a644f20 commit 15184f7

File tree

153 files changed

+3318
-1561
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

153 files changed

+3318
-1561
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ An Android application to easily browse, track and manage your LIFE4 Trials.
55

66
### Installation
77
APKs can currently only be downloaded from GitHub.
8-
- Download the latest APK version [here](https://github.com/PerrigoGames/Life4DDR-Trials/releases/download/v0.4.5/Life4Trials_0_4_5.apk).
8+
- Download the latest APK version [here](https://github.com/PerrigoGames/Life4DDR-Trials/releases/download/v1.0.0/Life4Trials_1_0_0.apk).
99
- Ensure you have "Unknown sources" checked in Settings/Security.
1010
- Run the APK file to install.
1111
- Supports Android version 4.1 and higher

app/build.gradle

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ ext {
1616
android {
1717
signingConfigs {
1818
upload {
19-
storeFile file('C:\\Users\\Corey\\Development\\keystores\\upload-keystore.jks')
19+
storeFile file('../../../keystores/upload-keystore.jks')
2020
keyPassword 'FlOnG9T#0sNe41bXjKtVJi75Y'
2121
storePassword 'Ndb%TJQfsJ5c8%qLHP4QEG%Y@'
2222
keyAlias = 'upload'
2323
}
2424
debug {
25-
storeFile file('C:\\Users\\Corey\\Development\\keystores\\debug-keystore.jks')
25+
storeFile file('../../../keystores/debug-keystore.jks')
2626
keyPassword '9RA8qJW#hT^gI@T3UW0k$L3@W#'
2727
storePassword '!R35qX!&$P6wuEOI%lm6y&lAyq'
2828
keyAlias = 'debug'
@@ -33,8 +33,8 @@ android {
3333
applicationId "com.perrigogames.life4trials"
3434
minSdkVersion 16
3535
targetSdkVersion 28
36-
versionCode 9
37-
versionName "0.4.5"
36+
versionCode 22
37+
versionName "1.1.8"
3838
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
3939
multiDexEnabled true
4040
signingConfig signingConfigs.upload
@@ -79,14 +79,14 @@ dependencies {
7979
implementation 'androidx.core:core-ktx:1.1.0-alpha05'
8080
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
8181
implementation 'com.google.android.material:material:1.1.0-alpha06'
82-
implementation 'com.google.firebase:firebase-core:16.0.9'
8382

8483
implementation 'com.github.bumptech.glide:glide:4.9.0'
8584
implementation 'org.greenrobot:eventbus:3.1.1'
8685
implementation 'com.karumi:dexter:5.0.0'
8786

8887
// Firebase
8988
implementation 'com.google.firebase:firebase-core:16.0.9'
89+
implementation 'com.google.firebase:firebase-messaging:19.0.0'
9090
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.0'
9191

9292
// Retrofit2
@@ -117,6 +117,7 @@ dependencies {
117117
implementation "com.google.dagger:dagger-android-support:$dagger2_version"
118118
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
119119
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.0.0'
120+
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
120121
kapt "com.google.dagger:dagger-compiler:$dagger2_version"
121122
kapt "com.google.dagger:dagger-android-processor:$dagger2_version"
122123

app/objectbox-models/default.json

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,29 @@
7575
}
7676
],
7777
"relations": []
78+
},
79+
{
80+
"id": "3:5121322014264730323",
81+
"lastPropertyId": "3:6482824092841661256",
82+
"name": "GoalStatusDB",
83+
"properties": [
84+
{
85+
"id": "1:1411004893783989070",
86+
"name": "goalId"
87+
},
88+
{
89+
"id": "2:8351987538112467256",
90+
"name": "date"
91+
},
92+
{
93+
"id": "3:6482824092841661256",
94+
"name": "status"
95+
}
96+
],
97+
"relations": []
7898
}
7999
],
80-
"lastEntityId": "2:5753770248500082315",
100+
"lastEntityId": "3:5121322014264730323",
81101
"lastIndexId": "1:5226183221815835245",
82102
"lastRelationId": "0:0",
83103
"lastSequenceId": "0:0",

app/src/debug/google-services.json

Lines changed: 0 additions & 48 deletions
This file was deleted.

app/src/main/AndroidManifest.xml

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,22 @@
2020
android:supportsRtl="true"
2121
android:theme="@style/AppTheme"
2222
tools:ignore="AllowBackup">
23-
<activity android:name=".RankDetailsActivity"></activity>
24-
<activity android:name=".activity.Life4DescriptionActivity" />
23+
24+
<meta-data
25+
android:name="com.google.firebase.messaging.default_notification_channel_id"
26+
android:value="ID_UPDATES_CHANNEL" />
27+
28+
<activity
29+
android:name=".activity.FirstRunActivity"
30+
android:theme="@style/AppTheme.NoActionBar"/>
2531
<activity
26-
android:name=".activity.TrialsListActivity"
32+
android:name=".activity.TrialListActivity"
2733
android:label="@string/app_name"
2834
android:screenOrientation="portrait"
29-
android:theme="@style/AppTheme.NoActionBar">
35+
android:theme="@style/AppTheme.Launcher">
3036
<intent-filter>
3137
<action android:name="android.intent.action.MAIN" />
3238
<action android:name="android.intent.action.VIEW" />
33-
3439
<category android:name="android.intent.category.LAUNCHER" />
3540
</intent-filter>
3641
</activity>
@@ -45,9 +50,6 @@
4550
android:name=".activity.TrialSubmissionActivity"
4651
android:label="@string/confirm_trial_title"
4752
android:screenOrientation="portrait" />
48-
<activity
49-
android:name=".activity.GoogleDriveActivity"
50-
android:screenOrientation="portrait" />
5153
<activity
5254
android:name=".activity.TrialRecordsActivity"
5355
android:label="@string/title_activity_records" />
@@ -57,8 +59,23 @@
5759
<activity
5860
android:name=".activity.SettingsActivity"
5961
android:label="@string/title_activity_settings" />
62+
<activity
63+
android:name=".activity.RankDetailsActivity"/>
64+
<activity
65+
android:name=".activity.Life4DescriptionActivity" />
66+
<activity
67+
android:name=".activity.PlacementDetailsActivity" />
68+
69+
<service
70+
android:name=".api.Life4FirebaseMessagingService"
71+
android:exported="false">
72+
<intent-filter>
73+
<action android:name="com.google.firebase.MESSAGING_EVENT" />
74+
</intent-filter>
75+
</service>
6076

61-
<receiver android:name=".util.NotificationCopyHandler"
77+
<receiver
78+
android:name=".util.NotificationCopyHandler"
6279
android:enabled="true">
6380
<intent-filter>
6481
<action android:name="ACTION_COPY_CLIPBOARD"/>

app/src/main/java/com/perrigogames/life4trials/Life4Application.kt

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,53 +2,53 @@ package com.perrigogames.life4trials
22

33
import android.content.Context
44
import androidx.multidex.MultiDexApplication
5-
import com.jakewharton.retrofit2.adapter.kotlin.coroutines.CoroutineCallAdapterFactory
6-
import com.perrigogames.life4trials.data.LadderRankData
5+
import com.perrigogames.life4trials.api.FirebaseUtil
76
import com.perrigogames.life4trials.db.MyObjectBox
7+
import com.perrigogames.life4trials.manager.LadderManager
88
import com.perrigogames.life4trials.manager.PlacementManager
99
import com.perrigogames.life4trials.manager.TrialManager
10-
import com.perrigogames.life4trials.util.DataUtil
1110
import com.perrigogames.life4trials.util.NotificationUtil
12-
import com.perrigogames.life4trials.util.SharedPrefsUtils
13-
import com.perrigogames.life4trials.util.loadRawString
11+
import com.perrigogames.life4trials.util.SharedPrefsUtil
12+
import com.perrigogames.life4trials.util.SharedPrefsUtil.KEY_APP_CRASHED
1413
import io.objectbox.BoxStore
15-
import okhttp3.OkHttpClient
1614
import org.greenrobot.eventbus.EventBus
17-
import retrofit2.Retrofit
18-
import retrofit2.converter.gson.GsonConverterFactory
1915

2016
class Life4Application: MultiDexApplication() {
2117

22-
lateinit var ladderRankData: LadderRankData
18+
lateinit var ladderManager: LadderManager
2319
lateinit var placementManager: PlacementManager
2420
lateinit var trialManager: TrialManager
2521

2622
override fun onCreate() {
2723
super.onCreate()
28-
SharedPrefsUtils.initializeDefaults(this)
2924

30-
placementManager = PlacementManager(this)
31-
trialManager = TrialManager(this)
32-
ladderRankData = DataUtil.gson.fromJson(loadRawString(R.raw.ranks), LadderRankData::class.java)!!
25+
val defaultHandler = Thread.getDefaultUncaughtExceptionHandler()
26+
Thread.setDefaultUncaughtExceptionHandler { thread, exception ->
27+
SharedPrefsUtil.setUserFlag(this@Life4Application, KEY_APP_CRASHED, true)
28+
defaultHandler!!.uncaughtException(thread, exception)
29+
}
30+
31+
SharedPrefsUtil.initializeDefaults(this)
3332

3433
objectBox = MyObjectBox.builder()
3534
.androidContext(this)
3635
.build()
3736

37+
placementManager = PlacementManager(this)
38+
trialManager = TrialManager(this)
39+
ladderManager = LadderManager(this)
40+
3841
NotificationUtil.setupNotifications(this)
42+
43+
if (BuildConfig.DEBUG) {
44+
FirebaseUtil.getId(this)
45+
}
3946
}
4047

4148
companion object {
4249
val eventBus = EventBus()
4350

4451
lateinit var objectBox: BoxStore
45-
46-
fun retrofit() : Retrofit = Retrofit.Builder()
47-
.client(OkHttpClient().newBuilder().build())
48-
.baseUrl("https://www.googleapis.com/drive/v2/")
49-
.addConverterFactory(GsonConverterFactory.create())
50-
.addCallAdapterFactory(CoroutineCallAdapterFactory())
51-
.build()
5252
}
5353
}
5454

app/src/main/java/com/perrigogames/life4trials/TrialsAdapter.kt

Lines changed: 0 additions & 48 deletions
This file was deleted.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.perrigogames.life4trials.activity
2+
3+
import android.os.Bundle
4+
import android.view.View
5+
import androidx.annotation.IdRes
6+
import androidx.appcompat.app.AppCompatActivity
7+
import com.perrigogames.life4trials.R
8+
import kotlinx.android.synthetic.main.activity_first_run.*
9+
10+
/**
11+
* A simple [Activity] intended to be shown when there is no user data and an initial rank needs to be established.
12+
*/
13+
class FirstRunActivity : AppCompatActivity() {
14+
15+
private var selectedOption: Int? = null
16+
17+
override fun onCreate(savedInstanceState: Bundle?) {
18+
super.onCreate(savedInstanceState)
19+
setContentView(R.layout.activity_first_run)
20+
}
21+
22+
fun onOptionSelected(v: View) {
23+
if (selectedOption == null) {
24+
return
25+
}
26+
selectedOption = v.id
27+
when(selectedOption) {
28+
R.id.text_option_new -> animateResponse(R.id.text_response_new)
29+
R.id.text_option_familiar -> animateResponse(R.id.text_response_familiar)
30+
R.id.text_option_login -> animateResponse(R.id.text_response_login)
31+
}
32+
}
33+
34+
fun animateResponse(@IdRes responseId: Int) {
35+
listOf(text_option_new, text_option_familiar, text_option_login,
36+
text_response_new, text_response_familiar, text_response_login).forEach {
37+
38+
if (it.id != responseId) {
39+
it.visibility = View.GONE
40+
}
41+
}
42+
}
43+
}

0 commit comments

Comments
 (0)