Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fixed issue 17 #97

Open
wants to merge 116 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
75086e6
Implement pause feature by adding 2 main component:
Apr 28, 2018
bc37781
1-file naming increment issue : fixed.
Apr 28, 2018
0bb7944
delete todos regarding pause/resume feature
Apr 28, 2018
0025136
+ Change package name (com.danielkim -> by.naxa)
naXa777 Aug 18, 2018
3d5eae7
Request app permissions at runtime (on Android 6.0 and higher)
naXa777 Aug 19, 2018
10a191f
Integrate Crashlytics SDK to monitor the app's health
naXa777 Aug 19, 2018
0948810
Fix a crash (due to incorrect permissions check)
naXa777 Aug 19, 2018
e4a72b0
Remove extra padding between cards on Records tab
naXa777 Aug 19, 2018
19a04da
Change directory for storing records + refactoring
naXa777 Aug 19, 2018
f5c3ad5
Show error (in Snackbar) if permission is not granted
naXa777 Aug 20, 2018
c5f5583
Modernization: replace com.melnykov.fab.FloatingActionButton (depreca…
naXa777 Aug 20, 2018
3873a35
Add missing russian translations
naXa777 Aug 20, 2018
0de0d04
+ Verify that external storage is available and show error (if it's not)
naXa777 Aug 20, 2018
4d4ed28
Update strings
naXa777 Aug 20, 2018
797c62c
Update Gradle build plugin to the latest version
naXa777 Aug 20, 2018
a34b3c5
Warn when file operations fail
naXa777 Aug 20, 2018
a8a531a
cleanup
naXa777 Aug 20, 2018
58d6178
Use Android Design Support CoordinatorLayout + AppBarLayout + TabLayo…
naXa777 Aug 21, 2018
b85d2e2
Report recording task status (from Service to Activity) - this commit…
naXa777 Aug 21, 2018
20958ae
Cleanup: minor changes to project hierarchy
naXa777 Aug 21, 2018
3fc9c3b
remove dead code
Aug 21, 2018
1322063
add Toast for resumed status.
Aug 21, 2018
0150800
change mPlayButton to FAB.
Aug 21, 2018
f4d8045
Double tapping on Record button was causing Runtime exception at stop()
naXa777 Aug 22, 2018
493b93f
Declares hardware features that are used by the application
naXa777 Aug 22, 2018
b6d531d
Request audio focus when playing a sound recording
naXa777 Aug 24, 2018
d430d42
Minor changes:
naXa777 Aug 24, 2018
40d7aa6
Respond to headset events: pause playback when headset is unplugged
naXa777 Aug 24, 2018
b61e037
* Fix AppBar layout
naXa777 Aug 26, 2018
791c6f2
* Fix "black hole" bug in Android 4.1 (API 16)
naXa777 Aug 26, 2018
2c8ca10
Add landscape mode
naXa777 Aug 27, 2018
e90a613
Apply Material Design to all components (such as PAUSE button, EditTe…
naXa777 Aug 27, 2018
93f6bad
Refactor > Migrate to AndroidX
naXa777 Aug 27, 2018
aac4b31
Fix layout problems
naXa777 Aug 27, 2018
3fc2639
Fix FileUriExposedException, which occurred when sharing files throug…
naXa777 Aug 27, 2018
fe216d3
Update Open Source Licenses
naXa777 Aug 28, 2018
9d660be
prepare for release - app version 2.0
naXa777 Aug 28, 2018
6461c11
"Rename File" dialog - limit TextInputEditText to single line
naXa777 Aug 28, 2018
7894e2b
Update README.md
naXa777 Aug 28, 2018
7e01bef
Update .gitignore
naXa777 Aug 28, 2018
48aa374
"Rename File" dialog - show soft keyboard automatically
naXa777 Aug 28, 2018
4e5e388
Update README.md
naXa777 Aug 28, 2018
3c8aecb
Fix application crash in case if User starts recording when the micro…
naXa777 Aug 28, 2018
5ebc9c6
* Fix application crash when leaving split-screen mode in Android Nou…
naXa777 Aug 29, 2018
20d674f
Update README.md - Contribution
naXa777 Sep 2, 2018
02bd993
Remove ignored files from VCS
naXa777 Sep 2, 2018
04576fb
Start RecordingService in foreground (show persistent notification du…
naXa777 Sep 4, 2018
2cfdc6c
Fix high quality preference
naXa777 Sep 4, 2018
3378832
Fix #31 - Change time format from mm:ss to hh:mm:ss for long records
naXa777 Sep 4, 2018
697c55c
#30 Move app icons to mipmap- folders
naXa777 Sep 4, 2018
63c9a9e
Integrate with Travis CI
naXa777 Sep 4, 2018
fca6032
Setup Fabric Crashlytics CI friendly
naXa777 Sep 4, 2018
45f644f
remove ignored files from VCS
naXa777 Sep 4, 2018
1a3cfc2
Modify build script to proceed with Lint errors (error is caused by c…
naXa777 Sep 4, 2018
8dd7db5
Configure instrumented tests
naXa777 Sep 5, 2018
f7f3d6b
Embed build status image (badge)
naXa777 Sep 5, 2018
7d2f59e
Update README.md - rearrange badges
naXa777 Sep 5, 2018
c14c0c7
Start emulator before tests in order to fix Travis CI error: no conne…
naXa777 Sep 5, 2018
ddb3ad0
Fix Travis CI error: could not parse .travis.yml (syntax error)
naXa777 Sep 5, 2018
6c7c4a6
Fix Travis CI error: Invalid --abi armeabi-v7a for the selected target
naXa777 Sep 5, 2018
1e0aa20
Fix Travis CI error: Target id is not valid
naXa777 Sep 5, 2018
30428d6
Fix Travis CI error: Invalid --abi armeabi-v7a for the selected targe…
naXa777 Sep 5, 2018
1056828
Fix Travis CI error: remove -no-skin -no-audio + try API level 22 + c…
naXa777 Sep 5, 2018
7839c0e
Increase timeout in order to fix Travis CI error: ShellCommandUnrespo…
naXa777 Sep 5, 2018
3e0ab56
Fix Travis CI error (attempt №10) - copy travis.yml from andstatus/an…
naXa777 Sep 5, 2018
6daac58
Fix Travis CI error (attempt №11): INSTRUMENTATION_FAILED: Unable to …
naXa777 Sep 5, 2018
307b805
Fix Travis CI error (attempt №12): INSTRUMENTATION_FAILED: Unable to …
naXa777 Sep 5, 2018
83b8b31
Enable test coverage for debug build
naXa777 Sep 5, 2018
60ad3de
Update README.md
naXa777 Sep 5, 2018
80598ad
Update Crowdin configuration file
naXa777 Sep 5, 2018
3de6e79
Update README.md
naXa777 Sep 5, 2018
e23b87d
Update README.md
naXa777 Sep 5, 2018
7b54057
Update README.md
naXa777 Sep 5, 2018
624e714
Upload coverage report to Codecov after successful build in Travis CI
naXa777 Sep 6, 2018
d0bdfad
:bug: bugfix: duration is displayed as 00:00
naXa777 Sep 6, 2018
c3b6190
Add LeakCanary - a memory leak detection library
naXa777 Sep 6, 2018
31f1b9d
New Crowdin translations (#34)
naXa777 Sep 7, 2018
c016c86
Update README.md
naXa777 Sep 7, 2018
21dc22b
Update README.md - 2 new badges
naXa777 Sep 7, 2018
b8e5b58
Fix #35 Prevent mis-clicks on buttons
naXa777 Sep 8, 2018
84716a1
Fix #21 Chronometer starts even if recording start failed
naXa777 Sep 8, 2018
5ecb514
#37 fix possible memory leaks
naXa777 Sep 8, 2018
649592f
Enhance crash reports
naXa777 Sep 9, 2018
dcd437e
Fix #5 Activity has leaked ServiceConnection that was originally boun…
naXa777 Sep 9, 2018
590ac3c
update Gradle
naXa777 Sep 26, 2018
1c8c880
:busts_in_silhouette: Contributing guidelines
naXa777 Sep 26, 2018
8ef8adf
try to fix anchor link
naXa777 Sep 26, 2018
58f18e0
Create strings.xml for South Korea
Dec 7, 2018
759170c
Add new options icon to sound file list item
Jantzilla Apr 15, 2019
d44fda9
update Gradle and other dependencies
naXa777 Apr 20, 2019
54ca03f
Change "presentFileOptions()" return value from "false" to "true"
Jantzilla Apr 25, 2019
d85f97d
fix Travis CI pipeline :construction_worker: (#57)
naXa777 Jun 18, 2019
46a125d
*.tmp files are now stored in external cache (#59)
har2008preet Jun 25, 2019
b65a5b6
Added Adaptive Icons
Tgo1014 Oct 4, 2019
06f41e4
Merge pull request #62 from Tgo1014/feature/adaptative-icons
naXa777 Oct 7, 2019
6e19084
Successfully added night mode
Oct 22, 2019
49c7af9
update Gradle wrapper to 5.6.3
naXa777 Oct 31, 2019
ebc2a6d
migrate Fabric Crashlytics to Firebase Crashlytics
naXa777 Oct 31, 2019
90cf343
fix Travis CI pipeline :construction_worker:
naXa777 Oct 31, 2019
f87b092
fix Travis CI pipeline :construction_worker:
naXa777 Oct 31, 2019
40aac82
fix Travis CI pipeline :construction_worker:
naXa777 Oct 31, 2019
ca3e6a3
fix Travis CI pipeline :construction_worker: (again)
naXa777 Oct 31, 2019
a6aa8b5
fix Travis CI pipeline :construction_worker: (again and again)
naXa777 Oct 31, 2019
b63f9ce
Merge pull request #64 from MilindAmrutkar/issue-2
naXa777 Oct 31, 2019
52c4249
Added displaying "No recordings" when record list is empty
msolanik Oct 26, 2019
a36b9f6
Merge remote-tracking branch 'origin/master' into maintenance/migrate…
naXa777 Oct 31, 2019
ee3799d
add missing dependency
naXa777 Oct 31, 2019
2ce25ed
Merge pull request #66 from naXa777/maintenance/migrate-to-firebase
naXa777 Oct 31, 2019
e818e86
downgrade target SDK to P (not ready for Q yet)
naXa777 Oct 31, 2019
ff0022b
Added intent for other apps to use recorder (#63)
aman0408 Oct 31, 2019
375177b
add translations from POEditor:
naXa777 Oct 31, 2019
307b38c
update gradle
hyperov Nov 1, 2019
6f7f7b7
add gradle properties
hyperov Nov 1, 2019
4751f00
manual pull request from youcef934
hyperov Nov 1, 2019
fb02d14
code clean up
hyperov Nov 1, 2019
7c40e3f
lint fixes
hyperov Nov 1, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 49 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,51 @@
.gradle
# Crashlytics configuations
com_crashlytics_export_strings.xml

# Generated files
.gradle/
build/
bin/
gen/
out/
*.apk
*.ap_

# Local configuration file (sdk path, etc)
/local.properties
/.idea/workspace.xml
/.idea/libraries

# Signing files
.signing/

# User-specific configurations
.idea/libraries/
.idea/workspace.xml
.idea/tasks.xml
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
.idea/modules.xml
.idea/scopes/scope_settings.xml
.idea/vcs.xml
.idea/caches/
.idea/codeStyles/
.idea/shelf/

# OS-specific files
.DS_Store
/build
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Google Services (e.g. APIs or Firebase)
app/google-services.json
23 changes: 0 additions & 23 deletions .idea/compiler.xml

This file was deleted.

3 changes: 0 additions & 3 deletions .idea/copyright/profiles_settings.xml

This file was deleted.

5 changes: 0 additions & 5 deletions .idea/encodings.xml

This file was deleted.

11 changes: 0 additions & 11 deletions .idea/inspectionProfiles/Project_Default.xml

This file was deleted.

7 changes: 0 additions & 7 deletions .idea/inspectionProfiles/profiles_settings.xml

This file was deleted.

36 changes: 0 additions & 36 deletions .idea/misc.xml

This file was deleted.

9 changes: 0 additions & 9 deletions .idea/modules.xml

This file was deleted.

5 changes: 0 additions & 5 deletions .idea/scopes/scope_settings.xml

This file was deleted.

9 changes: 0 additions & 9 deletions .idea/vcs.xml

This file was deleted.

110 changes: 110 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
language: android
env:
global:
- ANDROID_API=29
- EMULATOR_API=24
- ANDROID_BUILD_TOOLS=29.0.2

before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- $HOME/.m2
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- $HOME/.android/build-cache

android:
components:
- tools
- android-$EMULATOR_API
- platform-tools
- tools
- build-tools-$ANDROID_BUILD_TOOLS
- android-$ANDROID_API
- extra-android-support
- extra-android-m2repository
- extra-google-m2repository
- sys-img-armeabi-v7a-android-$EMULATOR_API
licenses:
- ".+"

before_install:
- yes | sdkmanager "platforms;android-28"

# Emulator Management: Update SDK, Create, Start and Wait
before_script:
- echo "y" | android update sdk -a --no-ui --filter android-$EMULATOR_API
- echo "y" | android update sdk -a --no-ui --filter sys-img-armeabi-v7a-android-$EMULATOR_API
- android list targets | grep -E '^id:' | awk -F '"' '{$1=""; print $2}' # list all targets
- echo no | android create avd --force -n test -t android-$EMULATOR_API --abi armeabi-v7a
- emulator -avd test -no-skin -no-window &
- android-wait-for-emulator
- adb shell input keyevent 82 &
- adb wait-for-device get-serialno
- cd ${TRAVIS_BUILD_DIR}
- chmod +x gradlew
- ./gradlew --version
- ./gradlew clean

script:
- |
./gradlew build assembleAndroidTest -PtestCoverageEnabled='true'
retval=$?
if [ $retval -ne 0 ]; then
echo "error on assembling, exit code: "$retval
exit $retval
fi

# See https://stackoverflow.com/q/21294945/1429387
# Instead of this (which doesn't give any output during tests execution):
# - ./gradlew connectedCheck -PdisablePreDex --continue --stacktrace --debug
# run:
- |
./gradlew :app:installDebug :app:installDebugAndroidTest -PtestCoverageEnabled='true'
retval=$?
if [ $retval -ne 0 ]; then
echo "error on install, exit code: "$retval
exit $retval
fi

#
# Run only tests, marked with a special annotation:
# See https://d.android.com/reference/android/support/test/runner/AndroidJUnitRunner
# For testing one method only:
# - adb shell am instrument -w -r -e debug false -e coverage true -e class by.naxa.soundrecorder.MainActivityTests#testGreet by.naxa.soundrecorder/androidx.test.runner.AndroidJUnitRunner
- adb shell pm list instrumentation
- |
adb shell am instrument -w -r -e executionMode travisTest -e coverage true by.naxa.soundrecorder.test/androidx.test.runner.AndroidJUnitRunner |& tee build/adb-test.log
retval=$?
if [ $retval -ne 0 ]; then
echo "error in adb, exit code: "$retval
exit $retval
fi

# adb doesn't propagate exit code from tests, see https://code.google.com/p/android/issues/detail?id=3254
# So we need to parse saved terminal log
- |
cat build/adb-test.log | grep "INSTRUMENTATION_STATUS: stack=" | grep -v "org.junit.AssumptionViolatedException"
if [ $? -eq 0 ]; then
echo "Test failure found"
exit 1
else
cat build/adb-test.log | grep "OK ("
fi

# Copy coverage data from the emulator
- |
adb shell "rm /sdcard/Download/coverage.ec"
adb shell "run-as by.naxa.soundrecorder cp /data/user/0/by.naxa.soundrecorder/files/coverage.ec /sdcard/Download"
# copy to "build" folder, where it will be found by Sonar scanner
- cd app/build
- adb pull "/sdcard/Download/coverage.ec"
- cd ../..

notifications:
email: false

after_success:
- bash <(curl -s https://codecov.io/bash)
66 changes: 66 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Contributing

Contributors are more than welcome. How can you contribute?

### Report bugs

We want our app to be as stable as possible thus your bug reports are immensely valuable. File [GitHub Issues](https://github.com/naXa777/SoundRecorder/issues) for anything that is unexpectedly broken.

* App version
* Device model
* Android version
* Steps to reproduce the bug
* Expected behavior
* Actual behavior (a screenshot and/or log file may be helpful)

### Contribute Code [![Open Source Helpers](https://www.codetriage.com/naxa777/soundrecorder/badges/users.svg)](https://www.codetriage.com/naxa777/soundrecorder)

We have labeled tasks you can help with as [![GitHub issues by-label](https://img.shields.io/github/issues/naXa777/SoundRecorder/help%20wanted.svg)](https://github.com/naXa777/SoundRecorder/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) and [![GitHub issues by-label](https://img.shields.io/github/issues/naXa777/SoundRecorder/good%20first%20issue.svg)](https://github.com/naXa777/SoundRecorder/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). Just pick up an issue that you're interested in and start coding. If you have a great idea you really want to implement, start by logging an issue for us. We'll let you know if it fits with our product direction and then you can start development. When you're ready open a Pull Request with a description of your changes.

See [Git Essentials](#git-essentials) for a simple bugfix workflow.

### Translate

You don't have to be a programmer if you want to translate this application in your own language or improve existing translations.
You can translate SoundRecorder using [POEditor](https://poeditor.com/join/project/IuPsne4VcJ) - a collaborative translation platform.

[![POEditor](https://poeditor.com/public/images/logo_small.png)](https://poeditor.com/join/project/IuPsne4VcJ)

### Automate Testing

Testing is imperative to the health of the project. There's a configured CI pipeline ([Travis CI](https://travis-ci.com/naXa777/SoundRecorder)) intended for running unit tests and instrumented tests on every commit to the repository, but unfortunately, there're very few tests at the moment.

Please follow standard guidelines if you want to contribute a test:

1. Android Developers - [Test apps on Android](https://d.android.com/training/testing/)
2. Android Studio - [Test your app](https://d.android.com/studio/test/)
3. GitHub - [Android testing samples](https://github.com/googlesamples/android-testing)


## Git Essentials

Workflows can vary, but here is a very simple workflow for contributing a bug fix:

1. [Fork](https://help.github.com/articles/fork-a-repo/) the repository.

2. Clone the fork:

$ git clone git@github.com:YOUR_USERNAME/SoundRecorder.git
$ git remote add upstream https://github.com/naXa777/SoundRecorder.git

Read why do you need to [Configure a remote](https://help.github.com/articles/configuring-a-remote-for-a-fork/) if you're interested.

3. Prepare a feature branch:

$ git checkout -b issue-123-keyword master

4. Do development and then commit your changes:

$ git commit -m "fix #123 - Description of what I had changed"
$ git push

A quick note: See Chris Beams' guide to writing good commit messages - [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/).

5. Open a pull request.

Read [Creating a pull request from a fork](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) for details.
Loading