mirror of
https://github.com/wismna/DoNext.git
synced 2025-12-06 00:02:40 -05:00
Compare commits
8 Commits
af0bb51f01
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c2c146a28e | ||
|
|
0b479e10c8 | ||
|
|
0fbdec570a | ||
|
|
e44bb99479 | ||
|
|
dcaecbf185 | ||
|
|
e6f81fa177 | ||
|
|
b3af094eed | ||
|
|
49a58a8977 |
15
.github/workflows/android.yaml
vendored
15
.github/workflows/android.yaml
vendored
@@ -6,6 +6,9 @@ on:
|
||||
- master
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
MODULE: donextv2
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -20,10 +23,6 @@ jobs:
|
||||
distribution: 'temurin'
|
||||
java-version: '17'
|
||||
|
||||
- name: Replace tokens in build.gradle
|
||||
run: |
|
||||
sed -i 's/#{\([^}]*\)}/${\1}/g' donext/build.gradle
|
||||
|
||||
- name: Cache Gradle
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
@@ -34,6 +33,9 @@ jobs:
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
|
||||
- name: Decode signing key
|
||||
run: echo "${{ secrets.SIGNING_KEY_BASE64 }}" | base64 --decode > ${{ env.MODULE }}/upload.jks
|
||||
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
@@ -47,5 +49,10 @@ jobs:
|
||||
|
||||
- name: Run Fastlane
|
||||
env:
|
||||
MODULE: ${{ env.MODULE }}
|
||||
SUPPLY_JSON_KEY: service-account.json
|
||||
KEYSTORE_FILE: upload.jks
|
||||
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
|
||||
ALIAS_NAME: ${{ secrets.ALIAS_NAME }}
|
||||
ALIAS_PASSWORD: ${{ secrets.ALIAS_PASSWORD }}
|
||||
run: bundle exec fastlane internal
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,5 +1,6 @@
|
||||
*.iml
|
||||
*.apk
|
||||
*.jks
|
||||
.gradle
|
||||
/local.properties
|
||||
/.idea/workspace.xml
|
||||
@@ -8,3 +9,4 @@
|
||||
/build
|
||||
/captures
|
||||
/fastlane/keys/
|
||||
/donext*/release/
|
||||
|
||||
@@ -42,7 +42,7 @@ dependencies {
|
||||
implementation "com.microsoft.appcenter:appcenter-crashes:${appCenterSdkVersion}"
|
||||
|
||||
// Lifecycle components
|
||||
def lifecycleVersion = '2.9.3'
|
||||
def lifecycleVersion = '2.9.4'
|
||||
implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycleVersion"
|
||||
implementation "androidx.lifecycle:lifecycle-livedata:$lifecycleVersion"
|
||||
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycleVersion"
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
||||
|
||||
plugins {
|
||||
id("com.android.application")
|
||||
id("org.jetbrains.kotlin.android")
|
||||
@@ -18,12 +20,21 @@ android {
|
||||
applicationId = "com.wismna.geoffroy.donext"
|
||||
minSdk = 26
|
||||
targetSdk = 36
|
||||
versionCode = 34
|
||||
versionName = "2.0"
|
||||
versionCode = 35
|
||||
versionName = "2.0.1"
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
create("release") {
|
||||
storeFile = file(System.getenv("KEYSTORE_FILE") ?: "./upload.jks")
|
||||
storePassword = System.getenv("KEYSTORE_PASSWORD")
|
||||
keyAlias = System.getenv("ALIAS_NAME")
|
||||
keyPassword = System.getenv("ALIAS_PASSWORD")
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
getByName("debug").assets.srcDirs(files("$projectDir/schemas"))
|
||||
}
|
||||
@@ -38,14 +49,17 @@ android {
|
||||
getDefaultProguardFile("proguard-android-optimize.txt"),
|
||||
"proguard-rules.pro"
|
||||
)
|
||||
signingConfig = signingConfigs["release"]
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = "11"
|
||||
kotlin {
|
||||
compilerOptions {
|
||||
jvmTarget = JvmTarget.JVM_11
|
||||
}
|
||||
}
|
||||
buildFeatures {
|
||||
compose = true
|
||||
|
||||
@@ -6,6 +6,8 @@ import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.fillMaxHeight
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Checklist
|
||||
import androidx.compose.material.icons.filled.Delete
|
||||
@@ -43,7 +45,8 @@ fun MenuScreen(
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.fillMaxHeight()
|
||||
.padding(vertical = 8.dp),
|
||||
.padding(vertical = 8.dp)
|
||||
.verticalScroll(rememberScrollState()),
|
||||
verticalArrangement = Arrangement.SpaceBetween
|
||||
) {
|
||||
Column {
|
||||
|
||||
@@ -7,6 +7,8 @@ import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.CalendarMonth
|
||||
import androidx.compose.material.icons.filled.Clear
|
||||
@@ -61,7 +63,7 @@ fun TaskScreen(
|
||||
titleFocusRequester.requestFocus()
|
||||
}
|
||||
|
||||
Column(Modifier.padding(16.dp)) {
|
||||
Column(Modifier.padding(16.dp).verticalScroll(rememberScrollState())) {
|
||||
Text(
|
||||
stringResource(
|
||||
if (viewModel.isDeleted) R.string.task_title_deleted
|
||||
|
||||
@@ -1,23 +1,30 @@
|
||||
default_platform(:android)
|
||||
|
||||
platform :android do
|
||||
desc "Build, test, and deploy the production version to Google Play"
|
||||
lane :deploy do
|
||||
gradle(task: "testDebugUnitTest")
|
||||
gradle(task: "clean :donextv2:bundleRelease")
|
||||
upload_to_play_store(
|
||||
track: "production",
|
||||
aab: "donextv2/build/outputs/bundle/release/donextv2-release.aab"
|
||||
)
|
||||
end
|
||||
|
||||
desc "Build, test, and deploy to Google Play"
|
||||
lane :internal do
|
||||
module_name = ENV["MODULE"]
|
||||
# Read local versionCode
|
||||
project_root = File.expand_path("..", __dir__)
|
||||
gradle_path = File.join(project_root, module_name, "build.gradle.kts")
|
||||
UI.message("Gradle file resolved at: #{gradle_path}")
|
||||
gradle_file = File.read(gradle_path)
|
||||
gradle_version = gradle_file[/versionCode\s*=\s*(\d+)/, 1].to_i
|
||||
|
||||
# Read Play Store versionCode (track internal)
|
||||
play_version = google_play_track_version_codes(
|
||||
track: "internal"
|
||||
).max.to_i
|
||||
|
||||
if gradle_version <= play_version
|
||||
UI.user_error!("VersionCode #{gradle_version} should be higher than Play Store version (#{play_version}). Aborting upload.")
|
||||
end
|
||||
|
||||
gradle(task: "testDebugUnitTest")
|
||||
gradle(task: "clean :donextv2:bundleRelease")
|
||||
gradle(task: "clean :#{module_name}:bundleRelease")
|
||||
upload_to_play_store(
|
||||
track: "internal",
|
||||
aab: "donextv2/build/outputs/bundle/release/donextv2-release.aab"
|
||||
aab: "#{module_name}/build/outputs/bundle/release/#{module_name}-release.aab"
|
||||
)
|
||||
end
|
||||
end
|
||||
@@ -2,10 +2,7 @@ Complete UI overhaul that gives DoNext a nice, modern look.
|
||||
Complete code rewrite to Kotlin and Android Jetpack, with a better architecture.
|
||||
|
||||
Task lists are now displayed in a navigation menu
|
||||
Tasks are now ordered by priority and not cycles
|
||||
Tasks are now ordered by priority and not cycles which were removed
|
||||
All tasks can be Done or Removed instead of only the first one
|
||||
A Recycle Bin was added
|
||||
The whole Next and cycles mechanism was removed
|
||||
The History page was removed and its features split between the regular task lists and the Recycle Bin
|
||||
The Today view is not a separate concept now, it's based on the tasks due date
|
||||
No more Settings page as it's not needed anymore (but it may come back later if required)
|
||||
Removed History page and split its features between the regular task lists and the new Recycle Bin
|
||||
Today view is not a separate concept anymore and based on the tasks due date
|
||||
Reference in New Issue
Block a user