Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
codinguser committed Oct 26, 2015
2 parents 694dfd5 + 7a7cb23 commit ae28ffd
Show file tree
Hide file tree
Showing 447 changed files with 34,310 additions and 13,685 deletions.
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,12 @@ out/
*.classpath
# cpu profile generated by Android Studio
/captures

gradle.properties

#Crashlytics

crashlytics.properties
fabric.properties
app/fabric.properties
app/*.tap
15 changes: 8 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,32 +4,33 @@ android:
components:
- platform-tools
- tools
- build-tools-22.0.1
- build-tools-23.0.1

# The SDK version used to compile your project
- android-19
- android-23

# Additional components
- extra-android-support
- extra-google-google_play_services
- extra-google-m2repository
- extra-android-m2repository
- addon-google_apis-google-19
- addon-google_apis-google-23

# Specify at least one system image,
# if you need to run emulator(s) during your tests
- sys-img-armeabi-v7a-android-19
#- sys-img-armeabi-v7a-android-23


# Emulator Management: Create, Start and Wait
# Re-enable this when we figure out how to reliably build on Travis
#before_script:
# - mkdir sdcard
# - mksdcard -l gnucash-sdcard 64M sdcard/gnucash-sdcard.img
# - echo no | android create avd --force -n test -t android-19 --abi armeabi-v7a
# - echo no | android create avd --force -n test -t android-23 --abi armeabi-v7a
# - emulator -avd test -no-skin -no-audio -no-window -no-boot-anim -sdcard sdcard/gnucash-sdcard.img &
# - android-wait-for-emulator
# - adb shell input keyevent 82 &

script:
- ./gradlew build
# - ./gradlew connectedCheck
# - ./gradlew connectedCheck
32 changes: 32 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,37 @@
Change Log
===============================================================================
Version 2.0.0 *(2015-11-01)*
----------------------------
* Feature: Updated app design to use Material Design guidelines
* Feature: Setup wizard on first run of the application
* Feature: Support for multi-currency transactions
* Feature: New report summary page and more options for display/grouping reports
* Feature: Calculator keyboard when entering transactions
* Feature: Use appropriate decimal places per currency
* Feature: New help & feedback section with UserVoice
* Feature: New transaction detail view with running account balance
* Feature: Export/import commodity prices to/from GnuCash XML
* Feature: Prompt for rating the application after a number of starts
* Feature: Support for Android M permissions model
* Feature: New horizontal layout for account and transaction lists
* Feature: Automatic sending of crash reports with user permission (opt-in)
* Feature: Default transfer account setting propagates to child accounts
* Feature: Export transactions from a particular date
* Improved: Transactions are always balanced at the database layer before saving
* Improved: OFX export do not try to support double entry anymore
* Improved: Restructured the app settings categories
* Improved: Highlight active scheduled actions
* Improved: Restructured navigation drawer and added icons
* Improved: Currencies are listed sorted by currency code
* Improved: Show relative time in transaction list
* Improved: Added Portuguese translation
* Improved: Account balances are now computed faster (in parallel)
* Fixed: Data leak through app screenshot when passcode is set
* Fixed: Some inconsistencies when importing GnuCash XML
* Fixed: "Save" and "Cancel" transaction buttons not displayed in Gingerbread
* Fixed: Word-wrap on transaction type switch
* Fixed: Crash when restoring backups with poorly formatted amount strings

Version 1.6.4 *(2015-08-12)*
----------------------------
* Fixed: Crashes during backup restoration
Expand Down
13 changes: 7 additions & 6 deletions CONTRIBUTORS
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
GnuCash for Android is a community effort which is made possible by the contributions of
GnuCash for Android is a community effort which is made possible by the contributions of
several different people.
Appreciation goes to Muslim Chochlov and the to whole GnuCash community for guiding the
Appreciation goes to Muslim Chochlov and the to whole GnuCash community for guiding the
project through the early phases and providing valuable feedback.

Lead Developer:
Maintainer:
Ngewi Fet <ngewif@gmail.com>

Main contributors to core app experience:
Core contributors:
Yongxin Wang <fefe.wyx@gmail.com>
Oleksandr Tyshkovets <olexandr.tyshkovets@gmail.com>
Àlex Magaz Graça <rivaldi8@gmail.com>

The following people (in no particular order) contributed (code and translations) to GnuCash for Android:
The following people (in no particular order) contributed (patches and translations) to GnuCash Android:
Christian Stimming <christian@cstimming.de>
Cristian Marchi <cri.penta@gmail.com>
Menelaos Maglis <mmaglis@metacom.gr>
Expand All @@ -27,4 +28,4 @@ Alex Lei <lxbzmy@gmail.com>
Matthew Hague <matthewhague@zoho.com>
Spanti Nicola <rydroid_dev@yahoo.com>
Jesse Shieh <jesse.shieh.pub@gmail.com>
Àlex Magaz Graça <rivaldi8@gmail.com>
Terry Chung <terrywmc@gmail.com>
14 changes: 9 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
# Introduction

GnuCash Android is a companion expense-tracker application for GnuCash (desktop) designed for Android.
It allows you to record transactions on-the-go and later import the data into GnuCash for the desktop.
It allows you to record transactions on-the-go and later import the data into GnuCash for the desktop.

The application supports Android 2.3.4 Gingerbread (API level 10) and above.
The application supports Android 2.3.3 Gingerbread (API level 10) and above.

Features include:

Expand All @@ -18,7 +18,7 @@ Features include:

* Split Transactions: A single transaction can be split into several pieces to record taxes, fees, and other compound entries.

* Double Entry: Every transaction must debit one account and credit another by an equal amount.
* Double Entry: Every transaction must debit one account and credit another by an equal amount.
This ensures that the "books balance": that the difference between income and outflow exactly
equals the sum of all assets, be they bank, cash, stock or other.

Expand Down Expand Up @@ -62,7 +62,7 @@ The app is configured to allow you to install a development and production versi

### With Android Studio
The easiest way to build is to install [Android Studio](https://developer.android.com/sdk/index.html) v1.+
with [Gradle](https://www.gradle.org/) v2.2.1.
with [Gradle](https://www.gradle.org/) v2.4.
Once installed, then you can import the project into Android Studio:

1. Open `File`
Expand All @@ -72,6 +72,10 @@ Once installed, then you can import the project into Android Studio:

Then, Gradle will do everything for you.

## Support

Google+ Community: https://plus.google.com/communities/104728406764752407046

## Contributing

There are several ways you could contribute to the development.
Expand All @@ -96,5 +100,5 @@ You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
See the License for the specific language governing permissions and
limitations under the License.
88 changes: 62 additions & 26 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import java.text.SimpleDateFormat

apply plugin: 'com.android.application'
apply plugin: 'crashlytics'
apply plugin: 'io.fabric'

def versionMajor = 1
def versionMinor = 6
def versionPatch = 4
def versionBuild = 0
def versionMajor = 2
def versionMinor = 0
def versionPatch = 0
def versionBuild = 7

def buildTime() {
def df = new SimpleDateFormat("yyyyMMdd")
def df = new SimpleDateFormat("yyyyMMdd HH:mm 'UTC'")
df.setTimeZone(TimeZone.getTimeZone("UTC"))
return df.format(new Date())
}
Expand All @@ -20,18 +20,20 @@ def gitSha() {


android {
compileSdkVersion 19
buildToolsVersion "21.1.2" //maintain this version until we migrate to ActionBarCompat
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "org.gnucash.android"
testApplicationId 'org.gnucash.android.test'
minSdkVersion 10
targetSdkVersion 19
targetSdkVersion 23 //robolectric tests only support up to API level 21 at the moment
versionCode versionMajor * 10000 + versionMinor * 1000 + versionPatch * 100 + versionBuild
versionName "${versionMajor}.${versionMinor}.${versionPatch}"
resValue "string", "app_version_name", "${versionName}"
resValue "string", "app_minor_version", "${versionMinor}"
buildConfigField "boolean", "USE_CRASHLYTICS", "false"
buildConfigField "boolean", "CAN_REQUEST_RATING", "false"
buildConfigField "String", "BUILD_TIME", "\"${buildTime()}\""

if (project.hasProperty("RELEASE_DROPBOX_APP_KEY")){
resValue "string", "dropbox_app_key", RELEASE_DROPBOX_APP_KEY
resValue "string", "dropbox_app_secret", RELEASE_DROPBOX_APP_SECRET
Expand Down Expand Up @@ -108,11 +110,12 @@ android {
resValue "string", "app_name", "GnuCash - beta"
versionName "${versionMajor}.${versionMinor}.${versionPatch}-beta${versionBuild}"
resValue "string", "app_version_name", "${versionName}"
buildConfigField "boolean", "USE_CRASHLYTICS", "true"
}

production {
resValue "string", "app_name", "GnuCash"
buildConfigField "boolean", "CAN_REQUEST_RATING", "true"
ext.enableCrashlytics = false
}

}
Expand All @@ -129,11 +132,18 @@ def adb = android.getAdbExe().toString()

afterEvaluate {
task grantAnimationPermissionDevel(type: Exec, dependsOn: 'installDevelopmentDebug') { // or install{productFlavour}{buildType}
commandLine "$adb shell pm grant $android.productFlavors.development.applicationId android.permission.SET_ANIMATION_SCALE".split(' ')
commandLine "$adb", 'devices'
standardOutput = new ByteArrayOutputStream()

String output = standardOutput.toString()
output.eachLine {
def serial = it.split("\\s")[0]
commandLine "$adb -s $serial shell pm grant $android.productFlavors.development.applicationId android.permission.SET_ANIMATION_SCALE".split(' ')
}
}

task grantAnimationPermissionProduction(type: Exec, dependsOn: 'installProductionDebug'){
commandLine "$adb shell pm grant $android.defaultConfig.applicationId android.permission.SET_ANIMATION_SCALE".split(' ')
commandLine "$adb -e shell pm grant $android.defaultConfig.applicationId android.permission.SET_ANIMATION_SCALE".split(' ')
}
// When launching individual tests from Android Studio, it seems that only the assemble tasks
// get called directly, not the install* versions
Expand All @@ -148,29 +158,55 @@ afterEvaluate {
}
}

def androidSupportVersion = "22.2.1"
def androidEspressoVersion = "2.2"
def androidSupportTestVersion = "0.3"

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile('com.android.support:support-v4:22.1.1',
'com.actionbarsherlock:actionbarsherlock:4.4.0@aar',
compile('com.android.support:support-v4:' + androidSupportVersion,
'com.android.support:appcompat-v7:' + androidSupportVersion,
'com.android.support:design:' + androidSupportVersion,
'com.android.support:cardview-v7:' + androidSupportVersion,
'com.android.support:recyclerview-v7:' + androidSupportVersion,
'com.viewpagerindicator:library:2.4.1@aar',
'com.doomonafireball.betterpickers:library:1.6.0',
'com.commonsware.cwac:merge:1.1.+',
'com.github.PhilJay:MPAndroidChart:v2.1.0',
'com.code-troopers.betterpickers:library:2.0.3',
'org.jraf:android-switch-backport:2.0.1@aar',
'com.github.PhilJay:MPAndroidChart:v2.1.3',
'joda-time:joda-time:2.7',
'org.ocpsoft.prettytime:prettytime:3.2.7.Final',
'com.google.android.gms:play-services-drive:7.0.0',
'com.crashlytics.android:crashlytics:1.+'
'com.jakewharton:butterknife:7.0.1',
'com.kobakei:ratethisapp:0.0.3',
'com.squareup:android-times-square:1.6.4@aar',
'com.github.techfreak:wizardpager:1.0.0',
'net.objecthunter:exp4j:0.4.5'
)

testCompile('org.robolectric:robolectric:3.0-rc2',
compile ('com.uservoice:uservoice-android-sdk:1.2.+') {
exclude module: 'commons-logging'
exclude module: 'httpcore'
exclude module: 'httpclient'
}

compile('com.crashlytics.sdk.android:crashlytics:2.5.0@aar') {
transitive = true;
}

testCompile('org.robolectric:robolectric:3.0',
'junit:junit:4.12',
'org.assertj:assertj-core:1.7.1'
)
androidTestCompile 'com.android.support.test:runner:0.2'
androidTestCompile 'com.android.support.test:rules:0.2'
androidTestCompile('com.squareup.assertj:assertj-android:1.0.0'){
androidTestCompile ('com.android.support:support-annotations:' + androidSupportVersion,
'com.android.support.test:runner:' + androidSupportTestVersion,
'com.android.support.test:rules:' + androidSupportTestVersion,
'com.android.support.test.espresso:espresso-core:' + androidEspressoVersion)
androidTestCompile ('com.android.support.test.espresso:espresso-contrib:' + androidEspressoVersion) {
exclude group: 'com.android.support', module: 'support-v4'
exclude module: 'recyclerview-v7'
}

androidTestCompile('com.squareup.assertj:assertj-android:1.1.0'){
exclude group: 'com.android.support', module:'support-annotations'
}
androidTestCompile ('com.android.support.test.espresso:espresso-core:2.1')
androidTestCompile 'com.android.support:support-annotations:22.1.1'
}
}
2 changes: 2 additions & 0 deletions app/proguard-project.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
protected Object[][] getContents();
}

-keep class android.support.v7.widget.SearchView { *; }

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
Expand Down
7 changes: 3 additions & 4 deletions app/project.properties
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

# Project target.
target=android-18
android.library.reference.1=gen-external-apklibs/com.actionbarsherlock_actionbarsherlock_4.4.0
android.library.reference.2=gen-external-apklibs/com.viewpagerindicator_library_2.4.1

target=android-21
android.library.reference.1=build/intermediates/exploded-aar/com.android.support/support-v4/22.2.1
android.library.reference.2=build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.2.1
Loading

0 comments on commit ae28ffd

Please sign in to comment.