├── .gitignore ├── Changelog-3.9.2.txt ├── Changelog-4.4.5.txt ├── Changelog-5.0.3.txt ├── Changelog-5.0.9.txt ├── Changelog-5.1.0.txt ├── Changelog-5.1.3.txt ├── LICENSE ├── README.md ├── Trycorder-5.2.3.apk ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ └── main │ ├── AndroidManifest.xml │ ├── assets │ ├── finalnew.ttf │ ├── finalold.ttf │ └── sonysketchef.ttf │ ├── java │ └── net │ │ └── ddns │ │ └── mlsoftlaberge │ │ └── trycorder │ │ ├── TrycorderActivity.java │ │ ├── TrycorderFragment.java │ │ ├── TrycorderReceiver.java │ │ ├── TrycorderService.java │ │ ├── TrydesktopFragment.java │ │ ├── TrygalleryFragment.java │ │ ├── TrysensorFragment.java │ │ ├── TryviewerFragment.java │ │ ├── TryviscamFragment.java │ │ ├── TryvisionFragment.java │ │ ├── contacts │ │ ├── ContactAdminActivity.java │ │ ├── ContactAdminFragment.java │ │ ├── ContactEditMemoActivity.java │ │ ├── ContactEditMemoFragment.java │ │ ├── ContactEditTransActivity.java │ │ ├── ContactEditTransFragment.java │ │ ├── ContactsBudgetActivity.java │ │ ├── ContactsBudgetFragment.java │ │ ├── ContactsListActivity.java │ │ ├── ContactsListFragment.java │ │ ├── ImageCache.java │ │ ├── ImageLoader.java │ │ └── Utils.java │ │ ├── products │ │ ├── MyProductContentProvider.java │ │ ├── ProductDatabaseHelper.java │ │ ├── ProductDetailActivity.java │ │ ├── ProductTable.java │ │ └── ProductsListActivity.java │ │ ├── settings │ │ ├── SettingsActivity.java │ │ └── SettingsFragment.java │ │ ├── tryclient │ │ ├── TryclientActivity.java │ │ └── TryclientFragment.java │ │ ├── trycorder │ │ ├── AudSensorView.java │ │ ├── AutoFitTextureView.java │ │ ├── FirSensorView.java │ │ ├── GIFView.java │ │ ├── GraSensorView.java │ │ ├── LogsStatView.java │ │ ├── MagSensorView.java │ │ ├── MotSensorView.java │ │ ├── OriSensorView.java │ │ ├── ShiSensorView.java │ │ ├── TemSensorView.java │ │ ├── TraSensorView.java │ │ ├── TrbSensorView.java │ │ └── VerticalSeekBar.java │ │ └── utils │ │ ├── Fetcher.java │ │ └── FileUtils.java │ └── res │ ├── anim │ ├── blink.xml │ ├── clockwise.xml │ ├── fadein.xml │ ├── fadeinout.xml │ ├── rotateback.xml │ └── slidein.xml │ ├── drawable │ ├── app_sample_code.png │ ├── btn_check_on.png │ ├── btn_star_big_on.png │ ├── call_contact.png │ ├── earth_still.jpg │ ├── federation_logo.jpg │ ├── ic_action_add.png │ ├── ic_action_check_in.png │ ├── ic_action_edit.png │ ├── ic_action_search.png │ ├── ic_contact_picture.png │ ├── ic_dialog_email.png │ ├── ic_menu_edit.png │ ├── ic_menu_save.png │ ├── martin.jpg │ ├── picture_frame.png │ ├── reminder.png │ ├── roddenberry_stillwell.jpg │ ├── starship_build.jpg │ ├── starship_plan.jpg │ ├── starship_sideview.jpg │ ├── starship_topview.jpg │ ├── starship_view.png │ ├── startrek_logo.png │ ├── trek_bottomleft.png │ ├── trek_bottomright.png │ ├── trek_horizontalline.png │ ├── trek_topleft.png │ ├── trek_topright.png │ ├── trek_verticalline.png │ ├── trekbutton_blue.xml │ ├── trekbutton_blue_center.xml │ ├── trekbutton_blue_left.xml │ ├── trekbutton_blue_right.xml │ ├── trekbutton_gray.xml │ ├── trekbutton_gray_center.xml │ ├── trekbutton_gray_left.xml │ ├── trekbutton_gray_right.xml │ ├── trekbutton_green.xml │ ├── trekbutton_green_center.xml │ ├── trekbutton_green_left.xml │ ├── trekbutton_green_right.xml │ ├── trekbutton_indigo.xml │ ├── trekbutton_indigo_center.xml │ ├── trekbutton_indigo_left.xml │ ├── trekbutton_indigo_right.xml │ ├── trekbutton_mauve.xml │ ├── trekbutton_mauve_center.xml │ ├── trekbutton_mauve_left.xml │ ├── trekbutton_mauve_right.xml │ ├── trekbutton_orange.xml │ ├── trekbutton_orange_center.xml │ ├── trekbutton_orange_left.xml │ ├── trekbutton_orange_right.xml │ ├── trekbutton_pink.xml │ ├── trekbutton_pink_center.xml │ ├── trekbutton_pink_left.xml │ ├── trekbutton_pink_right.xml │ ├── trekbutton_red.xml │ ├── trekbutton_red_center.xml │ ├── trekbutton_red_left.xml │ ├── trekbutton_red_right.xml │ ├── trekbutton_vert.xml │ ├── trekbutton_vert_center.xml │ ├── trekbutton_vert_left.xml │ ├── trekbutton_vert_right.xml │ ├── trekbutton_yellow.xml │ ├── trekbutton_yellow_center.xml │ ├── trekbutton_yellow_left.xml │ ├── trekbutton_yellow_right.xml │ ├── trycorder_icon.png │ ├── universe.jpg │ └── warpcore.jpg │ ├── layout │ ├── contact_address_item.xml │ ├── contact_admin_fragment.xml │ ├── contact_editmemo_fragment.xml │ ├── contact_edittrans_fragment.xml │ ├── contact_email_item.xml │ ├── contact_list_fragment.xml │ ├── contact_list_item.xml │ ├── contact_list_main.xml │ ├── contact_phone_item.xml │ ├── contact_transaction_item.xml │ ├── contacts_budget_fragment.xml │ ├── contacts_budget_item.xml │ ├── contacts_budget_trans.xml │ ├── gallery_activity.xml │ ├── product_edit.xml │ ├── product_list.xml │ ├── product_row.xml │ ├── tryclient_fragment.xml │ ├── trycorder_fragment.xml │ ├── trydesktop_fragment.xml │ ├── trygallery_fragment.xml │ ├── trysensor_fragment.xml │ ├── tryviewer_fragment.xml │ ├── tryviewer_row.xml │ ├── tryviscam_fragment.xml │ └── tryvision_fragment.xml │ ├── menu │ ├── contact_admin_menu.xml │ ├── contact_list_menu.xml │ ├── contacts_budget_menu.xml │ ├── popupdel.xml │ └── product_list_menu.xml │ ├── raw │ ├── alert15.mp3 │ ├── beam1a.wav │ ├── beam1b.wav │ ├── commclose.mp3 │ ├── commopen.wav │ ├── computerbeep_39.mp3 │ ├── computerbeep_55.mp3 │ ├── denybeep1.mp3 │ ├── destructsequence.mp3 │ ├── donotaddressthisunitinthatmanner_clean.mp3 │ ├── earth_rotating.gif │ ├── keyok2.mp3 │ ├── long_range_scan.mp3 │ ├── phasertype2.wav │ ├── photorp1.wav │ ├── scan_high.wav │ ├── scan_low.wav │ ├── shielddown.wav │ ├── shieldup.mp3 │ ├── tng_red_alert1.mp3 │ ├── tng_slowwarp_clean2.mp3 │ ├── tng_tractor_clean.mp3 │ ├── tng_warp5_clean.mp3 │ ├── tricscan2.wav │ ├── voy_core_2.mp3 │ └── warp_animation.gif │ ├── values │ ├── arrays.xml │ ├── colors.xml │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml │ └── xml │ └── preferences.xml ├── build.gradle ├── docs ├── Trycorder-5.0.2.odt ├── Trycorder-5.0.2.pdf ├── _config.yml └── index.html ├── gitall.sh ├── gitchange.sh ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── initgit5.sh ├── screenshot ├── Screenshot_2016-12-23-09-44-46.png ├── Screenshot_2016-12-23-09-45-08.png ├── Screenshot_2016-12-23-09-45-29.png ├── Screenshot_2016-12-23-09-45-39.png ├── Screenshot_2016-12-23-09-45-55.png ├── Screenshot_2016-12-23-09-46-29.png ├── Screenshot_2016-12-23-09-46-45.png ├── Screenshot_2016-12-23-09-47-08.png ├── Screenshot_2016-12-23-09-47-17.png ├── Screenshot_2016-12-23-09-47-28.png ├── Screenshot_2016-12-23-09-48-04.png ├── Screenshot_2016-12-23-09-49-17.png ├── Screenshot_2016-12-23-09-49-28.png ├── Screenshot_2016-12-23-09-50-45.png ├── Screenshot_2016-12-23-09-51-10.png ├── Screenshot_2016-12-23-09-51-34.png ├── Screenshot_2016-12-23-09-51-54.png ├── Screenshot_2016-12-23-09-52-16.png ├── Screenshot_2016-12-23-09-52-28.png ├── Screenshot_2016-12-23-09-52-39.png ├── Screenshot_2016-12-23-09-53-45.png ├── Screenshot_2016-12-23-09-54-52.png ├── Screenshot_2016-12-23-09-56-08.png ├── Screenshot_2016-12-23-09-56-28.png ├── Screenshot_2016-12-23-09-56-59.png ├── Screenshot_2016-12-23-09-57-23.png ├── Screenshot_2016-12-23-09-57-47.png └── Screenshot_2016-12-23-09-58-42.png ├── screenshot_4.png ├── screenshot_5.png ├── settings.gradle ├── tryclient ├── .kdev4 │ └── tryclient.kdev4 ├── CMakeLists.txt ├── make.sh ├── tryclient ├── tryclient.c └── tryclient.kdev4 ├── trycorder.jks ├── tryserver ├── .kdev4 │ └── tryserver.kdev4 ├── .sqliterc ├── CMakeLists.txt ├── make.sh ├── trydump.sh ├── trylist.sh ├── trylog.sh ├── trymodel.sh ├── trysel.sh ├── tryserver ├── tryserver.c ├── tryserver.kdev4 ├── tryserver.schema └── tryserver.sh └── trysql ├── .kdev4 └── trysql.kdev4 ├── .sqliterc ├── CMakeLists.txt ├── ip2city.sh ├── loadcity.sh ├── loadlist.sh ├── make.sh ├── old └── loaddbip.sh ├── trycity.txt ├── trycorders.txt ├── trycount.sh ├── trycount.txt ├── trycountry.txt ├── trysql ├── trysql.c ├── trysql.kdev4 └── trysql.sh /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | .idea 4 | /local.properties 5 | /.idea/workspace.xml 6 | /.idea/libraries 7 | .DS_Store 8 | /build 9 | /app/build 10 | /*/build 11 | /*/database 12 | /*/*.sqlite 13 | /*/*.dump 14 | /*/*.list 15 | /*/*.log 16 | /*/*.csv 17 | /*/try*.txt 18 | -------------------------------------------------------------------------------- /Changelog-4.4.5.txt: -------------------------------------------------------------------------------- 1 | 2016-12-18: - version 4.4.5 fully connected around the planet thru the server initial working version of an international chat room and command sharing between trycorders 2 | 3 | 2016-12-11: - version 4.4.3 stabilisation of the messenger interface 4 | 5 | 2016-12-07: - Version 4.4.2 new chat function between all planetary trycorders 6 | 7 | 2016-12-02: - Version 4.3.141592 8 | this is the first version (4.Pi) who connects to a central server 9 | 10 | The tryserver directory contains the main central server who responds to the trycorders activity with a server-ok message 11 | 12 | This tryserver also logs in tryserver.log, the totality of messages received from trycorders and their ip-address 13 | 14 | 2016-11-23: - version 4.2.0 added a desktop fragment, for use with universal communicator/translator 15 | 16 | 2016-11-18: - version 4.1.3 added a global red alert to the system 17 | 18 | 2016-11-14: - version 4.1 new controls for the tractor-beam styles ajustments 19 | 20 | 2016-11-12: - Version 4.0 of the Famous Trycorder By Martin Laberge. 21 | 22 | 2016-11-12: - first commit 23 | -------------------------------------------------------------------------------- /Changelog-5.0.3.txt: -------------------------------------------------------------------------------- 1 | 2017-01-15: - Version 5.0.3 Removed annoying sound. added some debugging scripts. 2 | 3 | 2017-01-15: - Version 5.0.3 Removed one annoying beep Prepared the tryserver to be more efficient 4 | 5 | 2017-01-12: - added to gitignore 6 | 7 | 2017-01-12: - Version 5.0.3 preparing for F-Droid repository 8 | 9 | 2017-01-08: - Version 5.0.2 10 | switched to Api 25 Nougat 11 | 12 | 2017-01-04: - remade the README.md with last texts 13 | 14 | 2017-01-04: - Merge branch 'master' of https://github.com/mlsoft/Trycorder5 15 | 16 | 2017-01-04: - renamed html doc to index.html 17 | 18 | 2017-01-04: - Set theme jekyll-theme-slate 19 | 20 | 2017-01-04: - reconverted the doc in xhtml format 21 | 22 | 2017-01-04: - modified readme 23 | 24 | 2017-01-04: - remake the index.html to be smaller 25 | 26 | 2017-01-04: - created the main index 27 | 28 | 2017-01-04: - moved files to prepare for web site 29 | 30 | 2017-01-04: - version 5.0.1 new screenshots modified manual ajusted service class 31 | 32 | 2016-12-21: - version 5.0.0 this is the first commit of the version 5 with remote ip-addr of others trycorders thru the tryserver 33 | 34 | 2016-12-19: - first commit 35 | -------------------------------------------------------------------------------- /Changelog-5.0.9.txt: -------------------------------------------------------------------------------- 1 | 2017-02-05: - version 5.0.9 Tried to correct the camera-1 interface for newer camera-2 phones. adjusted some few things too. 2 | 3 | 2017-02-02: - version 5.0.7 updated tryserver to mirror less data updated trycorderservice to identify itself better 4 | 5 | 2017-01-19: - Version 5.0.6 minor corrections with the service 6 | 7 | 2017-01-18: - version 5.0.5 corrected the sensor-off command increased tryserver efficiency collected 500 differents machines who tested the app 8 | 9 | 2017-01-17: - version 5.0.4 minor ajustments 10 | 11 | 2017-01-15: - Updated changelog 12 | 13 | 2017-01-15: - Version 5.0.3 Removed annoying sound. added some debugging scripts. 14 | 15 | 2017-01-15: - Version 5.0.3 Removed one annoying beep Prepared the tryserver to be more efficient 16 | 17 | 2017-01-12: - added to gitignore 18 | 19 | 2017-01-12: - Version 5.0.3 preparing for F-Droid repository 20 | 21 | 2017-01-08: - Version 5.0.2 22 | switched to Api 25 Nougat 23 | 24 | 2017-01-04: - remade the README.md with last texts 25 | 26 | 2017-01-04: - Merge branch 'master' of https://github.com/mlsoft/Trycorder5 27 | 28 | 2017-01-04: - renamed html doc to index.html 29 | 30 | 2017-01-04: - Set theme jekyll-theme-slate 31 | 32 | 2017-01-04: - reconverted the doc in xhtml format 33 | 34 | 2017-01-04: - modified readme 35 | 36 | 2017-01-04: - remake the index.html to be smaller 37 | 38 | 2017-01-04: - created the main index 39 | 40 | 2017-01-04: - moved files to prepare for web site 41 | 42 | 2017-01-04: - version 5.0.1 new screenshots modified manual ajusted service class 43 | 44 | 2016-12-21: - version 5.0.0 this is the first commit of the version 5 with remote ip-addr of others trycorders thru the tryserver 45 | 46 | 2016-12-19: - first commit 47 | -------------------------------------------------------------------------------- /Changelog-5.1.0.txt: -------------------------------------------------------------------------------- 1 | 2017-02-06: - version 5.1.0 added the apache license in every source files 2 | 3 | 2017-02-05: - updated changelog 4 | 5 | 2017-02-05: - version 5.0.9 Tried to correct the camera-1 interface for newer camera-2 phones. adjusted some few things too. 6 | 7 | 2017-02-02: - version 5.0.7 updated tryserver to mirror less data updated trycorderservice to identify itself better 8 | 9 | 2017-01-19: - Version 5.0.6 minor corrections with the service 10 | 11 | 2017-01-18: - version 5.0.5 corrected the sensor-off command increased tryserver efficiency collected 500 differents machines who tested the app 12 | 13 | 2017-01-17: - version 5.0.4 minor ajustments 14 | 15 | 2017-01-15: - Updated changelog 16 | 17 | 2017-01-15: - Version 5.0.3 Removed annoying sound. added some debugging scripts. 18 | 19 | 2017-01-15: - Version 5.0.3 Removed one annoying beep Prepared the tryserver to be more efficient 20 | 21 | 2017-01-12: - added to gitignore 22 | 23 | 2017-01-12: - Version 5.0.3 preparing for F-Droid repository 24 | 25 | 2017-01-08: - Version 5.0.2 26 | switched to Api 25 Nougat 27 | 28 | 2017-01-04: - remade the README.md with last texts 29 | 30 | 2017-01-04: - Merge branch 'master' of https://github.com/mlsoft/Trycorder5 31 | 32 | 2017-01-04: - renamed html doc to index.html 33 | 34 | 2017-01-04: - Set theme jekyll-theme-slate 35 | 36 | 2017-01-04: - reconverted the doc in xhtml format 37 | 38 | 2017-01-04: - modified readme 39 | 40 | 2017-01-04: - remake the index.html to be smaller 41 | 42 | 2017-01-04: - created the main index 43 | 44 | 2017-01-04: - moved files to prepare for web site 45 | 46 | 2017-01-04: - version 5.0.1 new screenshots modified manual ajusted service class 47 | 48 | 2016-12-21: - version 5.0.0 this is the first commit of the version 5 with remote ip-addr of others trycorders thru the tryserver 49 | 50 | 2016-12-19: - first commit 51 | -------------------------------------------------------------------------------- /Changelog-5.1.3.txt: -------------------------------------------------------------------------------- 1 | 2017-02-25: - updated the apk 2 | 3 | 2017-02-25: - added a new statistic (by state) 4 | 5 | 2017-02-25: - version 5.1.3 refined the statistics functions adjusted the chat window 6 | 7 | 2017-02-18: - ajusted statistics for more precise values 8 | 9 | 2017-02-18: - version 5.1.2 ajusted trycorder to display statistics from the server in chat window 10 | 11 | 2017-02-15: - modified the tryserver to log in a sqlfile ajusted trysql to import old data in database 12 | 13 | 2017-02-13: - added some sql commands to trysql.c 14 | 15 | 2017-02-11: - added trysql manager (experimental) 16 | 17 | 2017-02-11: - adjusted tryclient and tryserver for database access. pre-adjustment 18 | 19 | 2017-02-09: - git ajustments 20 | 21 | 2017-02-07: - remodified readme to remove xda logo 22 | 23 | 2017-02-07: - added XDA in readme 24 | 25 | 2017-02-07: - Merge branch 'master' of https://github.com/mlsoft/Trycorder5 26 | 27 | 2017-02-07: - modified readme 28 | 29 | 2017-02-07: - Merge pull request #5 from mueller-ma/patch-1 30 | Added fdroid logo + improvements to readme 31 | 2017-02-07: - Update README.md 32 | 33 | 2017-02-06: - version 5.1.0 try to solve the bootloop on certain devices (mostly 4.x) 34 | 35 | 2017-02-06: - version 5.1.0 updated the changelog 36 | 37 | 2017-02-06: - version 5.1.0 added the apache license in every source files 38 | 39 | 2017-02-05: - updated changelog 40 | 41 | 2017-02-05: - version 5.0.9 Tried to correct the camera-1 interface for newer camera-2 phones. adjusted some few things too. 42 | 43 | 2017-02-02: - version 5.0.7 updated tryserver to mirror less data updated trycorderservice to identify itself better 44 | 45 | 2017-01-19: - Version 5.0.6 minor corrections with the service 46 | 47 | 2017-01-18: - version 5.0.5 corrected the sensor-off command increased tryserver efficiency collected 500 differents machines who tested the app 48 | 49 | 2017-01-17: - version 5.0.4 minor ajustments 50 | 51 | 2017-01-15: - Updated changelog 52 | 53 | 2017-01-15: - Version 5.0.3 Removed annoying sound. added some debugging scripts. 54 | 55 | 2017-01-15: - Version 5.0.3 Removed one annoying beep Prepared the tryserver to be more efficient 56 | 57 | 2017-01-12: - added to gitignore 58 | 59 | 2017-01-12: - Version 5.0.3 preparing for F-Droid repository 60 | 61 | 2017-01-08: - Version 5.0.2 62 | switched to Api 25 Nougat 63 | 64 | 2017-01-04: - remade the README.md with last texts 65 | 66 | 2017-01-04: - Merge branch 'master' of https://github.com/mlsoft/Trycorder5 67 | 68 | 2017-01-04: - renamed html doc to index.html 69 | 70 | 2017-01-04: - Set theme jekyll-theme-slate 71 | 72 | 2017-01-04: - reconverted the doc in xhtml format 73 | 74 | 2017-01-04: - modified readme 75 | 76 | 2017-01-04: - remake the index.html to be smaller 77 | 78 | 2017-01-04: - created the main index 79 | 80 | 2017-01-04: - moved files to prepare for web site 81 | 82 | 2017-01-04: - version 5.0.1 new screenshots modified manual ajusted service class 83 | 84 | 2016-12-21: - version 5.0.0 this is the first commit of the version 5 with remote ip-addr of others trycorders thru the tryserver 85 | 86 | 2016-12-19: - first commit 87 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Copyright 2016 Martin Laberge 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #Trycorder 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | Available on XDA-Developpers 10 | 11 | 12 | ##Introduction 13 | 14 | For the non-trekkies, a Trycorder is a portable measuring tool, communication tool, and remote-control tool for your Starship. It has been used a lot in many very popular Science-Fiction TV serie and Movies. 15 | 16 | This is an itch I had to scratch for a long time. 17 | 18 | I wanted a full fledged trycorder without announcements, free as a beer, and free public code. 19 | 20 | I did'nt found what i was searching for, so I made one. 21 | 22 | The wish to have a full trycorder was so strong, I had to Learn Java, Learn Android-Studio, Learn Android Programming, starting with a classic "Hello World!" program, Learn Activities, Fragments, Permissions, and the rest, and all of this Before I started a single line of my project. 23 | 24 | After 3 long and painful months, I finally started the project, and drived it to a version 1.0, where I decided to share my fun with others. 25 | 26 | With this Trycorder, You can do the following: 27 | - Look, feel, and sound like the federation trycorder. 28 | - Fits in your pocket, so you can beam out on demand. 29 | - Scan your environment, temperature, pressure, light, magnetic, gravity, orientation,... 30 | - Control the device by voice-command. (Press top left, and say "fire" or "beam me up" for example) 31 | - Take pictures and recordings from your findings on new planets. 32 | - Remote control your own starship, fire, communications, shields, transporter, viewer, ... 33 | (You have to provide the starship, and make sure it is on the wifi router that you use). 34 | - Consult logs of operations. View the pictures and recordings you got back from your away mission. 35 | - View Magnetic, Orientation, Gravity, Temperature sensors values drawn in the sensor area. 36 | - View Phaser, Torpedo, Transporter operation in your sensor screen. 37 | - View Shields, Communication Waveform, Tractor Beam sensor animation on your sensor screen. 38 | - The application is usable in space, provided your phone is space-proof, and you wear a space-suit. 39 | - The application can be adapted easily for different starships remote protocols. 40 | - For captains only: Crew Information and Evaluation module. (to be found under logs/crew) (Contacts access) 41 | - For the first time in versions following the 4.Pi (ie:4.3.141592) , The Trycorder is connecting with a central server who receive every orders from planetary trycorders. Those orders are logged, and executed on the server. (Some Text-To-Voice system here translate your action into an audible message on the bridge (the development computer area)) :-) 42 | The Main Intelligence of the central server can respond to you. 43 | - And many more to come ... 44 | 45 | ##Installation 46 | To install download the APK, and install it by clicking on it after the download (in your Download directory on your phone, using your phone file manager) 47 | or 48 | Download the sources on github and have fun with android studio. (github.org/mlsoft) 49 | 50 | ##Tested on 51 | - Samsung Galaxy Nexus (GT-I9250): CyanogenMod 6.0.1, CyanogenMod 5.1.1 52 | - Motorola Moto-G (XT-1032): CyanogenMod 6.0.1, CyanogenMod 4.4.4, CyanogenMod-7.1 53 | - Samsung Ace-II (GT-S7560M): CyanogenMod 4.4.4 54 | - LG P705g: Stock 4.0.3 (unrooted plain stock) 55 | - Tablet Datawind 7Ci, Android-4.1 56 | 57 | Please tell me of your success so i can add to the list of tested phones. 58 | 59 | Remember: Every button has a function, and every surface is used and clickable. some functions may not be obvious, like speech recognition that you activate by clicking in the top left corner in the curve. (just try "computer fire" , "computer beam me up", "computer shields" , or read the source code for a complete list of words who trigger actions.) 60 | 61 | The trycorder contains more than 100 operating buttons, 15 animations, dozens of sounds, around 8 sensors, speech recognition and voice interaction, and a captains-only crew evaluation and information module. 62 | 63 | Have FUN !!! 64 | 65 | For those who have a Force-Close on first opening, make sure your android device is setup this way. 66 | Have Google Text-to-Speech installed and running in default us-english (and more if you need) 67 | Have Google voice recognition active for us-english (and more if you need) 68 | Have Google map installed (optionnal but nice to locate yourself on the current planet) 69 | Have Location service Enabled (GPS) 70 | Have Wifi operationnal (for info about your internet connection in the info panel, and location service) 71 | Allow all six permissions that the application ask for. 72 | 73 | Developpers 74 | For those who write android code too, this trycorder is made of hundreds of differents examples 75 | in the differents forums i follow. This is a good example of over-populated buttons groups, with a lot of 76 | examples applications all mixed together, trying to look like to a useful tool. 77 | 78 | This fantastic tool, helped me learn everything (hum! almost) in android where I had an itch for. 79 | 80 | Now people on XDA have a fantastic toy, to play with, learn in, and impress friends. 81 | -------------------------------------------------------------------------------- /Trycorder-5.2.3.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/Trycorder-5.2.3.apk -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 23 5 | buildToolsVersion '23.0.2' 6 | 7 | defaultConfig { 8 | applicationId "net.ddns.mlsoftlaberge.trycorder" 9 | minSdkVersion 16 10 | targetSdkVersion 23 11 | versionCode 523 12 | versionName "5.2.3" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(include: ['*.jar'], dir: 'libs') 24 | testCompile 'junit:junit:4.12' 25 | compile 'com.android.support:support-v4:23.0.0' 26 | compile 'com.android.support:support-v13:23.0.0' 27 | compile 'com.android.support:cardview-v7:23.0.0' 28 | compile 'com.android.support:appcompat-v7:23.0.0' 29 | } 30 | 31 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /home/mlsoft/Android/Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /app/src/main/assets/finalnew.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/assets/finalnew.ttf -------------------------------------------------------------------------------- /app/src/main/assets/finalold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/assets/finalold.ttf -------------------------------------------------------------------------------- /app/src/main/assets/sonysketchef.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/assets/sonysketchef.ttf -------------------------------------------------------------------------------- /app/src/main/java/net/ddns/mlsoftlaberge/trycorder/TrycorderReceiver.java: -------------------------------------------------------------------------------- 1 | package net.ddns.mlsoftlaberge.trycorder; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.content.SharedPreferences; 7 | import android.preference.PreferenceManager; 8 | import android.util.Log; 9 | import android.widget.Toast; 10 | 11 | /* 12 | * By Martin Laberge (mlsoftlaberge@gmail.com), From March 2016 to november 2016. 13 | * Licence: Can be shared with anyone, for non profit, provided my name stays in the comments. 14 | * This is a conglomerate of examples codes found in differents public forums on internet. 15 | * I just used the public knowledge to fit a special way to use an android phone functions. 16 | */ 17 | 18 | /* Copyright 2016 Martin Laberge 19 | * 20 | * Licensed under the Apache License, Version 2.0 (the "License"); 21 | * you may not use this file except in compliance with the License. 22 | * You may obtain a copy of the License at 23 | * 24 | * http://www.apache.org/licenses/LICENSE-2.0 25 | * 26 | * Unless required by applicable law or agreed to in writing, software 27 | * distributed under the License is distributed on an "AS IS" BASIS, 28 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 29 | * See the License for the specific language governing permissions and 30 | * limitations under the License. 31 | */ 32 | 33 | public class TrycorderReceiver extends BroadcastReceiver { 34 | 35 | @Override 36 | public void onReceive(Context context, Intent intent) { 37 | Toast.makeText(context, "Trycorder Boot Detected.", Toast.LENGTH_LONG).show(); 38 | Log.d("receiver", "Trycorder Boot Detected"); 39 | 40 | SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context); 41 | boolean autoBoot = sharedPref.getBoolean("pref_key_auto_boot", true); 42 | 43 | if(autoBoot) { 44 | Log.d("receiver", "Start Trycorder Service"); 45 | try { 46 | context.startService(new Intent(context, TrycorderService.class)); 47 | } catch (Exception e) { 48 | Log.d("receiver", "Cant start trycorder service"); 49 | } 50 | } 51 | } 52 | 53 | } 54 | 55 | -------------------------------------------------------------------------------- /app/src/main/java/net/ddns/mlsoftlaberge/trycorder/contacts/ContactAdminActivity.java: -------------------------------------------------------------------------------- 1 | package net.ddns.mlsoftlaberge.trycorder.contacts; 2 | 3 | /* 4 | * By Martin Laberge (mlsoft), From March 2016 to november 2016. 5 | * Licence: Can be shared with anyone, for non profit, provided my name stays in the comments. 6 | * This is a conglomerate of examples codes found in differents public forums on internet. 7 | * I just used the public knowledge to fit a special way to use an android phone functions. 8 | */ 9 | 10 | /* Copyright 2016 Martin Laberge 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the "License"); 13 | * you may not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * http://www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an "AS IS" BASIS, 20 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | import android.annotation.TargetApi; 26 | import android.app.NotificationManager; 27 | import android.app.PendingIntent; 28 | import android.content.Intent; 29 | import android.content.Context; 30 | import android.graphics.BitmapFactory; 31 | import android.net.Uri; 32 | import android.os.Build; 33 | import android.os.Bundle; 34 | import android.support.v4.app.FragmentActivity; 35 | import android.support.v4.app.FragmentTransaction; 36 | import android.support.v4.app.NavUtils; 37 | import android.support.v4.app.NotificationCompat; 38 | import android.view.MenuItem; 39 | import android.view.View; 40 | import android.widget.Toast; 41 | 42 | import net.ddns.mlsoftlaberge.trycorder.BuildConfig; 43 | import net.ddns.mlsoftlaberge.trycorder.R; 44 | 45 | /** 46 | * This class defines a simple FragmentActivity as the parent of {@link ContactAdminFragment}. 47 | */ 48 | public class ContactAdminActivity extends FragmentActivity { 49 | // Defines a tag for identifying the single fragment that this activity holds 50 | private static final String TAG = "ContactAdminActivity"; 51 | 52 | @TargetApi(Build.VERSION_CODES.HONEYCOMB) 53 | @Override 54 | protected void onCreate(Bundle savedInstanceState) { 55 | super.onCreate(savedInstanceState); 56 | // This activity expects to receive an intent that contains the uri of a contact 57 | if (getIntent() != null) { 58 | // Fetch the data Uri from the intent provided to this activity 59 | final Uri uri = getIntent().getData(); 60 | // Checks to see if fragment has already been added, otherwise adds a new 61 | // ContactAdminFragment with the Uri provided in the intent 62 | if (getSupportFragmentManager().findFragmentByTag(TAG) == null) { 63 | final FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 64 | // Adds a newly created ContactAdminFragment that is instantiated with the 65 | // data Uri 66 | ft.add(android.R.id.content, ContactAdminFragment.newInstance(uri), TAG); 67 | ft.commit(); 68 | } 69 | } else { 70 | // No intent provided, nothing to do so finish() 71 | finish(); 72 | } 73 | } 74 | 75 | // permits this activity to hide status and action bars, and proceed full screen 76 | @Override 77 | public void onWindowFocusChanged(boolean hasFocus) { 78 | super.onWindowFocusChanged(hasFocus); 79 | if (hasFocus) { 80 | getWindow().getDecorView().setSystemUiVisibility( 81 | View.SYSTEM_UI_FLAG_LAYOUT_STABLE 82 | | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 83 | | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 84 | | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 85 | | View.SYSTEM_UI_FLAG_FULLSCREEN 86 | | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 87 | } 88 | } 89 | 90 | } 91 | -------------------------------------------------------------------------------- /app/src/main/java/net/ddns/mlsoftlaberge/trycorder/contacts/ContactEditMemoActivity.java: -------------------------------------------------------------------------------- 1 | package net.ddns.mlsoftlaberge.trycorder.contacts; 2 | 3 | /* 4 | * By Martin Laberge (mlsoft), From March 2016 to november 2016. 5 | * Licence: Can be shared with anyone, for non profit, provided my name stays in the comments. 6 | * This is a conglomerate of examples codes found in differents public forums on internet. 7 | * I just used the public knowledge to fit a special way to use an android phone functions. 8 | */ 9 | 10 | /* Copyright 2016 Martin Laberge 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the "License"); 13 | * you may not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * http://www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an "AS IS" BASIS, 20 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | import android.annotation.TargetApi; 26 | import android.net.Uri; 27 | import android.os.Build; 28 | import android.os.Bundle; 29 | import android.support.v4.app.Fragment; 30 | import android.support.v4.app.FragmentActivity; 31 | import android.support.v4.app.FragmentTransaction; 32 | import android.support.v4.app.NavUtils; 33 | 34 | import android.view.MenuItem; 35 | import android.view.View; 36 | 37 | import net.ddns.mlsoftlaberge.trycorder.BuildConfig; 38 | import net.ddns.mlsoftlaberge.trycorder.R; 39 | 40 | /** 41 | * Created by mlsoft on 28/02/16. 42 | */ 43 | public class ContactEditMemoActivity extends FragmentActivity { 44 | // Defines a tag for identifying the single fragment that this activity holds 45 | private static final String TAG = "ContactEditMemoActivity"; 46 | 47 | @TargetApi(Build.VERSION_CODES.HONEYCOMB) 48 | @Override 49 | protected void onCreate(Bundle savedInstanceState) { 50 | super.onCreate(savedInstanceState); 51 | // This activity expects to receive an intent that contains the uri of a contact 52 | if (getIntent() != null) { 53 | // Fetch the data Uri from the intent provided to this activity 54 | final Uri uri = getIntent().getData(); 55 | final String name = getIntent().getStringExtra("NAME"); 56 | final String memo = getIntent().getStringExtra("MEMO"); 57 | // Checks to see if fragment has already been added, otherwise adds a new 58 | // ContactEditMemoFragment with the Uri provided in the intent 59 | if (getSupportFragmentManager().findFragmentByTag(TAG) == null) { 60 | final FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 61 | ft.add(android.R.id.content, ContactEditMemoFragment.newInstance(uri, name, memo), TAG); 62 | ft.commit(); 63 | } 64 | } else { 65 | // No intent provided, nothing to do so finish() 66 | finish(); 67 | } 68 | } 69 | 70 | // permits this activity to hide status and action bars, and proceed full screen 71 | //@Override 72 | //public void onWindowFocusChanged(boolean hasFocus) { 73 | // super.onWindowFocusChanged(hasFocus); 74 | // if (hasFocus) { 75 | // getWindow().getDecorView().setSystemUiVisibility( 76 | // View.SYSTEM_UI_FLAG_LAYOUT_STABLE 77 | // | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 78 | // | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 79 | // | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 80 | // | View.SYSTEM_UI_FLAG_FULLSCREEN 81 | // | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 82 | // } 83 | //} 84 | 85 | } 86 | -------------------------------------------------------------------------------- /app/src/main/java/net/ddns/mlsoftlaberge/trycorder/contacts/ContactsBudgetActivity.java: -------------------------------------------------------------------------------- 1 | package net.ddns.mlsoftlaberge.trycorder.contacts; 2 | 3 | /* 4 | * By Martin Laberge (mlsoft), From March 2016 to november 2016. 5 | * Licence: Can be shared with anyone, for non profit, provided my name stays in the comments. 6 | * This is a conglomerate of examples codes found in differents public forums on internet. 7 | * I just used the public knowledge to fit a special way to use an android phone functions. 8 | */ 9 | 10 | /* Copyright 2016 Martin Laberge 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the "License"); 13 | * you may not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * http://www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an "AS IS" BASIS, 20 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | import android.annotation.TargetApi; 26 | import android.os.Build; 27 | import android.os.Bundle; 28 | import android.support.v4.app.Fragment; 29 | import android.support.v4.app.FragmentActivity; 30 | import android.support.v4.app.FragmentTransaction; 31 | import android.support.v4.app.NavUtils; 32 | 33 | import android.view.MenuItem; 34 | import android.view.View; 35 | 36 | /** 37 | * Created by mlsoft on 28/02/16. 38 | */ 39 | public class ContactsBudgetActivity extends FragmentActivity { 40 | 41 | @TargetApi(Build.VERSION_CODES.HONEYCOMB) 42 | @Override 43 | protected void onCreate(Bundle savedInstanceState) { 44 | super.onCreate(savedInstanceState); 45 | final FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 46 | ft.add(android.R.id.content, new ContactsBudgetFragment()); 47 | ft.commit(); 48 | } 49 | 50 | // permits this activity to hide status and action bars, and proceed full screen 51 | @Override 52 | public void onWindowFocusChanged(boolean hasFocus) { 53 | super.onWindowFocusChanged(hasFocus); 54 | if (hasFocus) { 55 | getWindow().getDecorView().setSystemUiVisibility( 56 | View.SYSTEM_UI_FLAG_LAYOUT_STABLE 57 | | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 58 | | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 59 | | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 60 | | View.SYSTEM_UI_FLAG_FULLSCREEN 61 | | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 62 | } 63 | } 64 | 65 | } 66 | -------------------------------------------------------------------------------- /app/src/main/java/net/ddns/mlsoftlaberge/trycorder/contacts/ContactsListActivity.java: -------------------------------------------------------------------------------- 1 | package net.ddns.mlsoftlaberge.trycorder.contacts; 2 | 3 | /* 4 | * By Martin Laberge (mlsoft), From March 2016 to november 2016. 5 | * Licence: Can be shared with anyone, for non profit, provided my name stays in the comments. 6 | * This is a conglomerate of examples codes found in differents public forums on internet. 7 | * I just used the public knowledge to fit a special way to use an android phone functions. 8 | */ 9 | 10 | /* Copyright 2016 Martin Laberge 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the "License"); 13 | * you may not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * http://www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an "AS IS" BASIS, 20 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | import android.app.SearchManager; 26 | import android.content.Intent; 27 | import android.net.Uri; 28 | import android.os.Bundle; 29 | import android.support.v4.app.FragmentActivity; 30 | import android.view.View; 31 | 32 | import net.ddns.mlsoftlaberge.trycorder.BuildConfig; 33 | import net.ddns.mlsoftlaberge.trycorder.R; 34 | 35 | /** 36 | * FragmentActivity to hold the main {@link ContactsListFragment}. On larger screen devices which 37 | * can fit two panes also load ContactAdminFragment 38 | */ 39 | public class ContactsListActivity extends FragmentActivity implements 40 | ContactsListFragment.OnContactsInteractionListener { 41 | 42 | // Defines a tag for identifying log entries 43 | private static final String TAG = "ContactsListActivity"; 44 | 45 | // True if this activity instance is a search result view (used on pre-HC devices that load 46 | // search results in a separate instance of the activity rather than loading results in-line 47 | // as the query is typed. 48 | private boolean isSearchResultView = false; 49 | 50 | @Override 51 | protected void onCreate(Bundle savedInstanceState) { 52 | if (BuildConfig.DEBUG) { 53 | Utils.enableStrictMode(); 54 | } 55 | super.onCreate(savedInstanceState); 56 | // Set main content view. On smaller screen devices this is a single pane view with one 57 | // fragment. One larger screen devices this is a two pane view with two fragments. 58 | setContentView(R.layout.contact_list_main); 59 | } 60 | 61 | // permits this activity to hide status and action bars, and proceed full screen 62 | @Override 63 | public void onWindowFocusChanged(boolean hasFocus) { 64 | super.onWindowFocusChanged(hasFocus); 65 | if (hasFocus) { 66 | getWindow().getDecorView().setSystemUiVisibility( 67 | View.SYSTEM_UI_FLAG_LAYOUT_STABLE 68 | | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 69 | | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 70 | | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 71 | | View.SYSTEM_UI_FLAG_FULLSCREEN 72 | | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 73 | } 74 | } 75 | 76 | /** 77 | * This interface callback lets the main contacts list fragment notify 78 | * this activity that a contact has been selected. 79 | * 80 | * @param contactUri The contact Uri to the selected contact. 81 | */ 82 | @Override 83 | public void onContactSelected(Uri contactUri) { 84 | // start a new ContactAdminActivity with 85 | // the contact Uri 86 | // commented out for future use 87 | Intent intent = new Intent(this, ContactAdminActivity.class); 88 | intent.setData(contactUri); 89 | startActivity(intent); 90 | } 91 | 92 | /** 93 | * This interface callback lets the main contacts list fragment notify 94 | * this activity that a contact is no longer selected. 95 | */ 96 | @Override 97 | public void onSelectionCleared() { 98 | 99 | } 100 | 101 | @Override 102 | public boolean onSearchRequested() { 103 | // Don't allow another search if this activity instance is already showing 104 | // search results. Only used pre-HC. 105 | return !isSearchResultView && super.onSearchRequested(); 106 | } 107 | 108 | } 109 | -------------------------------------------------------------------------------- /app/src/main/java/net/ddns/mlsoftlaberge/trycorder/contacts/Utils.java: -------------------------------------------------------------------------------- 1 | package net.ddns.mlsoftlaberge.trycorder.contacts; 2 | 3 | /* 4 | * By Martin Laberge (mlsoft), From March 2016 to november 2016. 5 | * Licence: Can be shared with anyone, for non profit, provided my name stays in the comments. 6 | * This is a conglomerate of examples codes found in differents public forums on internet. 7 | * I just used the public knowledge to fit a special way to use an android phone functions. 8 | */ 9 | 10 | /* Copyright 2016 Martin Laberge 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the "License"); 13 | * you may not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * http://www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an "AS IS" BASIS, 20 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | import android.annotation.TargetApi; 26 | import android.os.Build; 27 | import android.os.StrictMode; 28 | 29 | /** 30 | * This class contains static utility methods. 31 | */ 32 | public class Utils { 33 | 34 | // Prevents instantiation. 35 | private Utils() {} 36 | 37 | /** 38 | * Enables strict mode. This should only be called when debugging the application and is useful 39 | * for finding some potential bugs or best practice violations. 40 | */ 41 | @TargetApi(11) 42 | public static void enableStrictMode() { 43 | // Strict mode is only available on gingerbread or later 44 | if (Utils.hasGingerbread()) { 45 | 46 | // Enable all thread strict mode policies 47 | StrictMode.ThreadPolicy.Builder threadPolicyBuilder = 48 | new StrictMode.ThreadPolicy.Builder() 49 | .detectAll() 50 | .penaltyLog(); 51 | 52 | // Enable all VM strict mode policies 53 | StrictMode.VmPolicy.Builder vmPolicyBuilder = 54 | new StrictMode.VmPolicy.Builder() 55 | .detectAll() 56 | .penaltyLog(); 57 | 58 | // Honeycomb introduced some additional strict mode features 59 | if (Utils.hasHoneycomb()) { 60 | // Flash screen when thread policy is violated 61 | threadPolicyBuilder.penaltyFlashScreen(); 62 | // For each activity class, set an instance limit of 1. Any more instances and 63 | // there could be a memory leak. 64 | vmPolicyBuilder 65 | .setClassInstanceLimit(ContactsListActivity.class, 1); 66 | //.setClassInstanceLimit(ContactAdminActivity.class, 1); 67 | } 68 | 69 | // Use builders to enable strict mode policies 70 | StrictMode.setThreadPolicy(threadPolicyBuilder.build()); 71 | StrictMode.setVmPolicy(vmPolicyBuilder.build()); 72 | } 73 | } 74 | 75 | /** 76 | * Uses static final constants to detect if the device's platform version is Gingerbread or 77 | * later. 78 | */ 79 | public static boolean hasGingerbread() { 80 | return Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD; 81 | } 82 | 83 | /** 84 | * Uses static final constants to detect if the device's platform version is Honeycomb or 85 | * later. 86 | */ 87 | public static boolean hasHoneycomb() { 88 | return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB; 89 | } 90 | 91 | /** 92 | * Uses static final constants to detect if the device's platform version is Honeycomb MR1 or 93 | * later. 94 | */ 95 | public static boolean hasHoneycombMR1() { 96 | return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1; 97 | } 98 | 99 | /** 100 | * Uses static final constants to detect if the device's platform version is ICS or 101 | * later. 102 | */ 103 | public static boolean hasICS() { 104 | return Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH; 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /app/src/main/java/net/ddns/mlsoftlaberge/trycorder/products/ProductDatabaseHelper.java: -------------------------------------------------------------------------------- 1 | package net.ddns.mlsoftlaberge.trycorder.products; 2 | 3 | /* 4 | * By Martin Laberge (mlsoft), From March 2016 to november 2016. 5 | * Licence: Can be shared with anyone, for non profit, provided my name stays in the comments. 6 | * This is a conglomerate of examples codes found in differents public forums on internet. 7 | * I just used the public knowledge to fit a special way to use an android phone functions. 8 | */ 9 | 10 | /* Copyright 2016 Martin Laberge 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the "License"); 13 | * you may not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * http://www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an "AS IS" BASIS, 20 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | import android.content.Context; 26 | import android.database.sqlite.SQLiteDatabase; 27 | import android.database.sqlite.SQLiteOpenHelper; 28 | 29 | public class ProductDatabaseHelper extends SQLiteOpenHelper { 30 | 31 | private static final String DATABASE_NAME = "productdata.db"; 32 | private static final int DATABASE_VERSION = 6; 33 | 34 | public ProductDatabaseHelper(Context context) { 35 | super(context, DATABASE_NAME, null, DATABASE_VERSION); 36 | } 37 | 38 | // Method is called during creation of the database 39 | @Override 40 | public void onCreate(SQLiteDatabase database) { 41 | ProductTable.onCreate(database); 42 | } 43 | 44 | // Method is called during an upgrade of the database, 45 | // e.g. if you increase the database version 46 | @Override 47 | public void onUpgrade(SQLiteDatabase database, int oldVersion, 48 | int newVersion) { 49 | ProductTable.onUpgrade(database, oldVersion, newVersion); 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /app/src/main/java/net/ddns/mlsoftlaberge/trycorder/products/ProductTable.java: -------------------------------------------------------------------------------- 1 | package net.ddns.mlsoftlaberge.trycorder.products; 2 | 3 | /* 4 | * By Martin Laberge (mlsoft), From March 2016 to november 2016. 5 | * Licence: Can be shared with anyone, for non profit, provided my name stays in the comments. 6 | * This is a conglomerate of examples codes found in differents public forums on internet. 7 | * I just used the public knowledge to fit a special way to use an android phone functions. 8 | */ 9 | 10 | /* Copyright 2016 Martin Laberge 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the "License"); 13 | * you may not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * http://www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an "AS IS" BASIS, 20 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | import android.database.sqlite.SQLiteDatabase; 26 | import android.util.Log; 27 | 28 | public class ProductTable { 29 | 30 | // Database table 31 | public static final String TABLE_PRODUCT = "product"; 32 | public static final String COLUMN_ID = "_id"; 33 | public static final String COLUMN_QUANTITY = "quantity"; 34 | public static final String COLUMN_UPC = "upc"; 35 | public static final String COLUMN_NAME = "name"; 36 | public static final String COLUMN_DESCRIPTION = "description"; 37 | 38 | // Database creation SQL statement 39 | private static final String DATABASE_CREATE = "create table " 40 | + TABLE_PRODUCT 41 | + "(" + COLUMN_ID + " integer primary key autoincrement, " 42 | + COLUMN_QUANTITY + " text not null, " 43 | + COLUMN_UPC + " text not null, " 44 | + COLUMN_NAME + " text not null," 45 | + COLUMN_DESCRIPTION + " text not null" 46 | + ");"; 47 | 48 | public static void onCreate(SQLiteDatabase database) { 49 | database.execSQL(DATABASE_CREATE); 50 | } 51 | 52 | public static void onUpgrade(SQLiteDatabase database, int oldVersion, 53 | int newVersion) { 54 | Log.w(ProductTable.class.getName(), "Upgrading database from version " 55 | + oldVersion + " to " + newVersion 56 | + ", which will destroy all old data"); 57 | database.execSQL("DROP TABLE IF EXISTS " + TABLE_PRODUCT); 58 | onCreate(database); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/java/net/ddns/mlsoftlaberge/trycorder/settings/SettingsActivity.java: -------------------------------------------------------------------------------- 1 | package net.ddns.mlsoftlaberge.trycorder.settings; 2 | 3 | /* 4 | * By Martin Laberge (mlsoft), From March 2016 to november 2016. 5 | * Licence: Can be shared with anyone, for non profit, provided my name stays in the comments. 6 | * This is a conglomerate of examples codes found in differents public forums on internet. 7 | * I just used the public knowledge to fit a special way to use an android phone functions. 8 | */ 9 | 10 | /* Copyright 2016 Martin Laberge 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the "License"); 13 | * you may not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * http://www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an "AS IS" BASIS, 20 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | import android.app.Activity; 26 | import android.os.Bundle; 27 | import android.preference.PreferenceManager; 28 | 29 | import net.ddns.mlsoftlaberge.trycorder.R; 30 | 31 | 32 | /** 33 | * Created by mlsoft on 15/04/16. 34 | */ 35 | public class SettingsActivity extends Activity { 36 | @Override 37 | protected void onCreate(Bundle savedInstanceState) { 38 | super.onCreate(savedInstanceState); 39 | PreferenceManager.setDefaultValues(this, R.xml.preferences, false); 40 | 41 | // Display the fragment as the main content. 42 | getFragmentManager().beginTransaction() 43 | .replace(android.R.id.content, new SettingsFragment()) 44 | .commit(); 45 | } 46 | } -------------------------------------------------------------------------------- /app/src/main/java/net/ddns/mlsoftlaberge/trycorder/settings/SettingsFragment.java: -------------------------------------------------------------------------------- 1 | package net.ddns.mlsoftlaberge.trycorder.settings; 2 | 3 | /* 4 | * By Martin Laberge (mlsoft), From March 2016 to november 2016. 5 | * Licence: Can be shared with anyone, for non profit, provided my name stays in the comments. 6 | * This is a conglomerate of examples codes found in differents public forums on internet. 7 | * I just used the public knowledge to fit a special way to use an android phone functions. 8 | */ 9 | 10 | /* Copyright 2016 Martin Laberge 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the "License"); 13 | * you may not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * http://www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an "AS IS" BASIS, 20 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | import android.os.Bundle; 26 | import android.preference.PreferenceFragment; 27 | 28 | import net.ddns.mlsoftlaberge.trycorder.R; 29 | 30 | 31 | /** 32 | * Created by mlsoft on 15/04/16. 33 | */ 34 | public class SettingsFragment extends PreferenceFragment { 35 | 36 | @Override 37 | public void onCreate(Bundle savedInstanceState) { 38 | super.onCreate(savedInstanceState); 39 | 40 | // Load the preferences from an XML resource 41 | addPreferencesFromResource(R.xml.preferences); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/net/ddns/mlsoftlaberge/trycorder/trycorder/AutoFitTextureView.java: -------------------------------------------------------------------------------- 1 | package net.ddns.mlsoftlaberge.trycorder.trycorder; 2 | 3 | /* 4 | * By Martin Laberge (mlsoft), From March 2016 to november 2016. 5 | * Licence: Can be shared with anyone, for non profit, provided my name stays in the comments. 6 | * This is a conglomerate of examples codes found in differents public forums on internet. 7 | * I just used the public knowledge to fit a special way to use an android phone functions. 8 | */ 9 | 10 | /* Copyright 2016 Martin Laberge 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the "License"); 13 | * you may not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * http://www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an "AS IS" BASIS, 20 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | import android.content.Context; 26 | import android.util.AttributeSet; 27 | import android.view.TextureView; 28 | 29 | /** 30 | * A TextureView that can be adjusted to a specified aspect ratio. 31 | */ 32 | public class AutoFitTextureView extends TextureView { 33 | 34 | private int mRatioWidth = 0; 35 | private int mRatioHeight = 0; 36 | 37 | public AutoFitTextureView(Context context) { 38 | this(context, null); 39 | } 40 | 41 | public AutoFitTextureView(Context context, AttributeSet attrs) { 42 | this(context, attrs, 0); 43 | } 44 | 45 | public AutoFitTextureView(Context context, AttributeSet attrs, int defStyle) { 46 | super(context, attrs, defStyle); 47 | } 48 | 49 | /** 50 | * Sets the aspect ratio for this view. The size of the view will be measured based on the ratio 51 | * calculated from the parameters. Note that the actual sizes of parameters don't matter, that 52 | * is, calling setAspectRatio(2, 3) and setAspectRatio(4, 6) make the same result. 53 | * 54 | * @param width Relative horizontal size 55 | * @param height Relative vertical size 56 | */ 57 | public void setAspectRatio(int width, int height) { 58 | if (width < 0 || height < 0) { 59 | throw new IllegalArgumentException("Size cannot be negative."); 60 | } 61 | mRatioWidth = width; 62 | mRatioHeight = height; 63 | requestLayout(); 64 | } 65 | 66 | @Override 67 | protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 68 | super.onMeasure(widthMeasureSpec, heightMeasureSpec); 69 | int width = MeasureSpec.getSize(widthMeasureSpec); 70 | int height = MeasureSpec.getSize(heightMeasureSpec); 71 | if (0 == mRatioWidth || 0 == mRatioHeight) { 72 | setMeasuredDimension(width, height); 73 | } else { 74 | if (width < height * mRatioWidth / mRatioHeight) { 75 | setMeasuredDimension(width, width * mRatioHeight / mRatioWidth); 76 | } else { 77 | setMeasuredDimension(height * mRatioWidth / mRatioHeight, height); 78 | } 79 | } 80 | } 81 | 82 | } 83 | -------------------------------------------------------------------------------- /app/src/main/java/net/ddns/mlsoftlaberge/trycorder/trycorder/GIFView.java: -------------------------------------------------------------------------------- 1 | package net.ddns.mlsoftlaberge.trycorder.trycorder; 2 | 3 | /* 4 | * By Martin Laberge (mlsoft), From March 2016 to november 2016. 5 | * Licence: Can be shared with anyone, for non profit, provided my name stays in the comments. 6 | * This is a conglomerate of examples codes found in differents public forums on internet. 7 | * I just used the public knowledge to fit a special way to use an android phone functions. 8 | */ 9 | 10 | /* Copyright 2016 Martin Laberge 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the "License"); 13 | * you may not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * http://www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an "AS IS" BASIS, 20 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | import android.content.Context; 26 | import android.graphics.Canvas; 27 | import android.graphics.Color; 28 | import android.graphics.Movie; 29 | import android.util.AttributeSet; 30 | import android.view.View; 31 | 32 | import java.io.InputStream; 33 | import java.util.Timer; 34 | import java.util.TimerTask; 35 | 36 | /** 37 | * Created by mlsoft on 16-06-25. 38 | */ 39 | // ===================================================================================== 40 | // animated gif viewer class 41 | public class GIFView extends View { 42 | public Movie mMovie=null; 43 | public long movieStart=0; 44 | private int gifId; 45 | private int position=0; 46 | 47 | public GIFView(Context context, int res) { 48 | super(context); 49 | setGIFResource(res); 50 | } 51 | 52 | public GIFView(Context context, AttributeSet attrs, int res) { 53 | super(context, attrs); 54 | setGIFResource(res); 55 | } 56 | 57 | public GIFView(Context context, AttributeSet attrs, int defStyle, int res) { 58 | super(context, attrs, defStyle); 59 | setGIFResource(res); 60 | } 61 | 62 | public void setGIFResource(int resId) { 63 | this.gifId = resId; 64 | initializeView(); 65 | } 66 | 67 | public int getGIFResource() { 68 | return this.gifId; 69 | } 70 | 71 | private void initializeView() { 72 | // disable hardware acceleration 73 | setLayerType(View.LAYER_TYPE_SOFTWARE, null); 74 | // decode the movie 75 | InputStream is = getContext().getResources().openRawResource(gifId); 76 | mMovie = Movie.decodeStream(is); 77 | } 78 | 79 | // ======= timer section ======= 80 | private Timer timer=null; 81 | private MyTimer myTimer; 82 | 83 | public void stop() { 84 | if(timer!=null) { 85 | timer.cancel(); 86 | timer=null; 87 | } 88 | position=0; 89 | invalidate(); 90 | } 91 | 92 | public void start() { 93 | // start the timer to eat this stuff and display it 94 | position=1; 95 | timer = new Timer("warp"); 96 | myTimer = new MyTimer(); 97 | timer.schedule(myTimer, 100L, 100L); 98 | } 99 | 100 | private class MyTimer extends TimerTask { 101 | public void run() { 102 | position++; 103 | postInvalidate(); 104 | if(position>=100) { 105 | position=1; 106 | postInvalidate(); 107 | } 108 | } 109 | } 110 | 111 | @Override 112 | protected void onDraw(Canvas canvas) { 113 | super.onDraw(canvas); 114 | canvas.drawColor(Color.TRANSPARENT); 115 | // compute time elapsed 116 | long now = android.os.SystemClock.uptimeMillis(); 117 | if (movieStart == 0) { 118 | movieStart = now; 119 | } 120 | if (mMovie != null) { 121 | int relTime = (int) ((now - movieStart) % mMovie.duration()); 122 | mMovie.setTime(relTime); 123 | //mMovie.draw(canvas, 0,0); 124 | mMovie.draw(canvas, (getWidth() - mMovie.width())/2, (getHeight() - mMovie.height())/2); 125 | this.invalidate(); 126 | } 127 | } 128 | 129 | } 130 | -------------------------------------------------------------------------------- /app/src/main/java/net/ddns/mlsoftlaberge/trycorder/trycorder/VerticalSeekBar.java: -------------------------------------------------------------------------------- 1 | package net.ddns.mlsoftlaberge.trycorder.trycorder; 2 | 3 | /* 4 | * By Martin Laberge (mlsoft), From March 2016 to november 2016. 5 | * Licence: Can be shared with anyone, for non profit, provided my name stays in the comments. 6 | * This is a conglomerate of examples codes found in differents public forums on internet. 7 | * I just used the public knowledge to fit a special way to use an android phone functions. 8 | */ 9 | 10 | /* Copyright 2016 Martin Laberge 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the "License"); 13 | * you may not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * http://www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an "AS IS" BASIS, 20 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | import android.content.Context; 26 | import android.graphics.Canvas; 27 | import android.util.AttributeSet; 28 | import android.view.MotionEvent; 29 | import android.widget.SeekBar; 30 | 31 | 32 | public class VerticalSeekBar extends SeekBar { 33 | 34 | private OnSeekBarChangeListener myListener; 35 | public VerticalSeekBar(Context context) { 36 | super(context); 37 | } 38 | 39 | public VerticalSeekBar(Context context, AttributeSet attrs, int defStyle) { 40 | super(context, attrs, defStyle); 41 | } 42 | 43 | public VerticalSeekBar(Context context, AttributeSet attrs) { 44 | super(context, attrs); 45 | } 46 | 47 | protected void onSizeChanged(int w, int h, int oldw, int oldh) { 48 | super.onSizeChanged(h, w, oldh, oldw); 49 | } 50 | 51 | @Override 52 | protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 53 | super.onMeasure(heightMeasureSpec, widthMeasureSpec); 54 | setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth()); 55 | } 56 | 57 | @Override 58 | public void setOnSeekBarChangeListener(OnSeekBarChangeListener mListener){ 59 | this.myListener = mListener; 60 | } 61 | 62 | protected void onDraw(Canvas c) { 63 | c.rotate(-90); 64 | c.translate(-getHeight(), 0); 65 | 66 | super.onDraw(c); 67 | } 68 | 69 | @Override 70 | public boolean onTouchEvent(MotionEvent event) { 71 | if (!isEnabled()) { 72 | return false; 73 | } 74 | 75 | int progress=getMax() - (int) (getMax() * event.getY() / getHeight()); 76 | if(progress<0) progress=0; 77 | if(progress>getMax()) progress=getMax(); 78 | 79 | switch (event.getAction()) { 80 | case MotionEvent.ACTION_DOWN: 81 | setProgress(progress); 82 | if(myListener!=null) myListener.onStartTrackingTouch(this); 83 | break; 84 | case MotionEvent.ACTION_MOVE: 85 | setProgress(progress); 86 | onSizeChanged(getWidth(), getHeight(), 0, 0); 87 | if(myListener!=null) myListener.onProgressChanged(this, progress, true); 88 | break; 89 | case MotionEvent.ACTION_UP: 90 | setProgress(progress); 91 | if(myListener!=null) myListener.onStopTrackingTouch(this); 92 | break; 93 | 94 | case MotionEvent.ACTION_CANCEL: 95 | break; 96 | } 97 | return true; 98 | } 99 | 100 | public synchronized void setProgressAndThumb(int progress) { 101 | setProgress(progress); 102 | onSizeChanged(getWidth(), getHeight() , 0, 0); 103 | if(myListener!=null) myListener.onProgressChanged(this, progress, true); 104 | } 105 | 106 | } 107 | 108 | -------------------------------------------------------------------------------- /app/src/main/java/net/ddns/mlsoftlaberge/trycorder/utils/FileUtils.java: -------------------------------------------------------------------------------- 1 | package net.ddns.mlsoftlaberge.trycorder.utils; 2 | 3 | /* 4 | * By Martin Laberge (mlsoft), From March 2016 to november 2016. 5 | * Licence: Can be shared with anyone, for non profit, provided my name stays in the comments. 6 | * This is a conglomerate of examples codes found in differents public forums on internet. 7 | * I just used the public knowledge to fit a special way to use an android phone functions. 8 | */ 9 | 10 | /* Copyright 2016 Martin Laberge 11 | * 12 | * Licensed under the Apache License, Version 2.0 (the "License"); 13 | * you may not use this file except in compliance with the License. 14 | * You may obtain a copy of the License at 15 | * 16 | * http://www.apache.org/licenses/LICENSE-2.0 17 | * 18 | * Unless required by applicable law or agreed to in writing, software 19 | * distributed under the License is distributed on an "AS IS" BASIS, 20 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21 | * See the License for the specific language governing permissions and 22 | * limitations under the License. 23 | */ 24 | 25 | import android.net.Uri; 26 | import android.os.Environment; 27 | import android.util.Log; 28 | 29 | import java.io.File; 30 | import java.text.SimpleDateFormat; 31 | import java.util.Date; 32 | 33 | /** 34 | * Created by mlsoft on 16/11/16. 35 | */ 36 | 37 | public class FileUtils { 38 | 39 | // =================================================================================== 40 | // common functions to obtain a media uri 41 | 42 | public static final int MEDIA_TYPE_IMAGE = 1; 43 | public static final int MEDIA_TYPE_VIDEO = 2; 44 | 45 | /** 46 | * Create a file Uri for saving an image or video 47 | */ 48 | public static Uri getOutputMediaFileUri(int type) { 49 | return Uri.fromFile(getOutputMediaFile(type)); 50 | } 51 | 52 | /** 53 | * Create a File for saving an image or video 54 | */ 55 | public static File getOutputMediaFile(int type) { 56 | // To be safe, you should check that the SDCard is mounted 57 | // using Environment.getExternalStorageState() before doing this. 58 | 59 | File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory( 60 | Environment.DIRECTORY_DCIM), "Camera"); 61 | // This location works best if you want the created images to be shared 62 | // between applications and persist after your app has been uninstalled. 63 | 64 | // Create the storage directory if it does not exist 65 | if (!mediaStorageDir.exists()) { 66 | if (!mediaStorageDir.mkdirs()) { 67 | Log.d("Trycorder", "failed to create directory"); 68 | return null; 69 | } 70 | } 71 | 72 | // Create a media file name 73 | String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 74 | File mediaFile; 75 | if (type == MEDIA_TYPE_IMAGE) { 76 | mediaFile = new File(mediaStorageDir.getPath() + File.separator + 77 | "IMG_" + timeStamp + ".jpg"); 78 | } else if (type == MEDIA_TYPE_VIDEO) { 79 | mediaFile = new File(mediaStorageDir.getPath() + File.separator + 80 | "VID_" + timeStamp + ".mp4"); 81 | } else { 82 | return null; 83 | } 84 | 85 | return mediaFile; 86 | } 87 | 88 | 89 | 90 | } 91 | -------------------------------------------------------------------------------- /app/src/main/res/anim/blink.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/anim/clockwise.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fadein.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/anim/fadeinout.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 11 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/anim/rotateback.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/anim/slidein.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/app_sample_code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/app_sample_code.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_check_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/btn_check_on.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/btn_star_big_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/btn_star_big_on.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/call_contact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/call_contact.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/earth_still.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/earth_still.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/federation_logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/federation_logo.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_action_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/ic_action_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_action_check_in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/ic_action_check_in.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_action_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/ic_action_edit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_action_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/ic_action_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_contact_picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/ic_contact_picture.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_dialog_email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/ic_dialog_email.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/ic_menu_edit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/ic_menu_save.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/martin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/martin.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/picture_frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/picture_frame.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/reminder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/reminder.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/roddenberry_stillwell.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/roddenberry_stillwell.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/starship_build.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/starship_build.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/starship_plan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/starship_plan.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/starship_sideview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/starship_sideview.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/starship_topview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/starship_topview.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/starship_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/starship_view.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/startrek_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/startrek_logo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/trek_bottomleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/trek_bottomleft.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/trek_bottomright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/trek_bottomright.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/trek_horizontalline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/trek_horizontalline.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/trek_topleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/trek_topleft.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/trek_topright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/trek_topright.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/trek_verticalline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/trek_verticalline.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_blue.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_blue_center.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_blue_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_blue_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_gray.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_gray_center.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_gray_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_gray_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_green.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_green_center.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_green_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_green_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_indigo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_indigo_center.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_indigo_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_indigo_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_mauve.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_mauve_center.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_mauve_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_mauve_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_orange.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_orange_center.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_orange_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_orange_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_pink.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_pink_center.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_pink_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_pink_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_red.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_red_center.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_red_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_red_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_vert.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_vert_center.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_vert_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_vert_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_yellow.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_yellow_center.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_yellow_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trekbutton_yellow_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/trycorder_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/trycorder_icon.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/universe.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/universe.jpg -------------------------------------------------------------------------------- /app/src/main/res/drawable/warpcore.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/drawable/warpcore.jpg -------------------------------------------------------------------------------- /app/src/main/res/layout/contact_address_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 13 | 14 | 26 | 27 | 37 | 38 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /app/src/main/res/layout/contact_email_item.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 20 | 21 | 26 | 27 | 31 | 32 | 44 | 45 | 55 | 56 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /app/src/main/res/layout/contact_list_item.xml: -------------------------------------------------------------------------------- 1 | 16 | 21 | 22 | 25 | 32 | 33 | 36 | 52 | 53 | 57 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /app/src/main/res/layout/contact_list_main.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 20 | 21 | 31 | 32 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /app/src/main/res/layout/contact_phone_item.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 20 | 21 | 26 | 27 | 31 | 32 | 44 | 45 | 55 | 56 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /app/src/main/res/layout/contact_transaction_item.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 20 | 21 | 28 | 29 | 35 | 36 | 44 | 45 | 54 | 55 | 56 | 57 | 69 | 70 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /app/src/main/res/layout/contacts_budget_fragment.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 19 | 20 | 27 | 28 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /app/src/main/res/layout/contacts_budget_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 20 | 21 | 28 | 29 | 36 | 37 | 38 | 43 | 44 | 50 | 51 | 57 | 58 | 59 | 63 | 64 | 69 | 70 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /app/src/main/res/layout/contacts_budget_trans.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | 14 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/main/res/layout/product_row.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 18 | 19 | 29 | 30 | 43 | 44 | -------------------------------------------------------------------------------- /app/src/main/res/layout/tryviewer_row.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 16 | 17 | 18 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/menu/contact_admin_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/menu/contact_list_menu.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 21 | 27 | 28 | 33 | 34 | 39 | 40 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /app/src/main/res/menu/contacts_budget_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/menu/popupdel.xml: -------------------------------------------------------------------------------- 1 | 15 | 16 | 20 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/menu/product_list_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/raw/alert15.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/alert15.mp3 -------------------------------------------------------------------------------- /app/src/main/res/raw/beam1a.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/beam1a.wav -------------------------------------------------------------------------------- /app/src/main/res/raw/beam1b.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/beam1b.wav -------------------------------------------------------------------------------- /app/src/main/res/raw/commclose.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/commclose.mp3 -------------------------------------------------------------------------------- /app/src/main/res/raw/commopen.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/commopen.wav -------------------------------------------------------------------------------- /app/src/main/res/raw/computerbeep_39.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/computerbeep_39.mp3 -------------------------------------------------------------------------------- /app/src/main/res/raw/computerbeep_55.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/computerbeep_55.mp3 -------------------------------------------------------------------------------- /app/src/main/res/raw/denybeep1.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/denybeep1.mp3 -------------------------------------------------------------------------------- /app/src/main/res/raw/destructsequence.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/destructsequence.mp3 -------------------------------------------------------------------------------- /app/src/main/res/raw/donotaddressthisunitinthatmanner_clean.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/donotaddressthisunitinthatmanner_clean.mp3 -------------------------------------------------------------------------------- /app/src/main/res/raw/earth_rotating.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/earth_rotating.gif -------------------------------------------------------------------------------- /app/src/main/res/raw/keyok2.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/keyok2.mp3 -------------------------------------------------------------------------------- /app/src/main/res/raw/long_range_scan.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/long_range_scan.mp3 -------------------------------------------------------------------------------- /app/src/main/res/raw/phasertype2.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/phasertype2.wav -------------------------------------------------------------------------------- /app/src/main/res/raw/photorp1.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/photorp1.wav -------------------------------------------------------------------------------- /app/src/main/res/raw/scan_high.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/scan_high.wav -------------------------------------------------------------------------------- /app/src/main/res/raw/scan_low.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/scan_low.wav -------------------------------------------------------------------------------- /app/src/main/res/raw/shielddown.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/shielddown.wav -------------------------------------------------------------------------------- /app/src/main/res/raw/shieldup.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/shieldup.mp3 -------------------------------------------------------------------------------- /app/src/main/res/raw/tng_red_alert1.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/tng_red_alert1.mp3 -------------------------------------------------------------------------------- /app/src/main/res/raw/tng_slowwarp_clean2.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/tng_slowwarp_clean2.mp3 -------------------------------------------------------------------------------- /app/src/main/res/raw/tng_tractor_clean.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/tng_tractor_clean.mp3 -------------------------------------------------------------------------------- /app/src/main/res/raw/tng_warp5_clean.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/tng_warp5_clean.mp3 -------------------------------------------------------------------------------- /app/src/main/res/raw/tricscan2.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/tricscan2.wav -------------------------------------------------------------------------------- /app/src/main/res/raw/voy_core_2.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/voy_core_2.mp3 -------------------------------------------------------------------------------- /app/src/main/res/raw/warp_animation.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlsoft/Trycorder5/b3870f4edd166856408ed0e30a87dae1f17abb3d/app/src/main/res/raw/warp_animation.gif -------------------------------------------------------------------------------- /app/src/main/res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | French 6 | English 7 | Auto 8 | 9 | 10 | 11 | FR 12 | EN 13 | Auto 14 | 15 | 16 | 17 | None 18 | Sensors 19 | Communication 20 | Shields 21 | Fire 22 | Transporter 23 | Viewer 24 | Logs 25 | 26 | 27 | 28 | 0 29 | 1 30 | 2 31 | 3 32 | 4 33 | 5 34 | 6 35 | 7 36 | 37 | 38 | 39 | None 40 | Magnetic 41 | Orientation 42 | Gravity 43 | 44 | 45 | 46 | 0 47 | 1 48 | 2 49 | 3 50 | 51 | 52 | 53 | Logo 54 | Video 55 | Console 56 | Info 57 | 58 | 59 | 60 | 0 61 | 1 62 | 2 63 | 3 64 | 65 | 66 | 67 | Product 68 | Service 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | #FF33B5E5 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2dp 4 | 5 | 16dp 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Trycorder 3 | 4 | Contacts List 5 | Contacts Budget 6 | Contact Detail 7 | Contact Admin 8 | Contact Edit Memo 9 | Contact Edit Transaction 10 | Contacts List Search for \"%s\" 11 | This is a sample app, demonstrating use of the Android system Contacts Provider. 12 | Contact Thumbnail 13 | View Address 14 | Add Transaction 15 | Edit Transaction 16 | Edit Notes 17 | Edit Phone 18 | Edit Email 19 | Edit Transaction 20 | Search 21 | Add Contact 22 | Edit Contact 23 | Modify Contact 24 | Starred Contact 25 | Budget 26 | No Contacts Found 27 | No Contact Selected 28 | Find contacts 29 | 30 | 32 | ABCDEFGHIJKLMNOPQRSTUVWXYZ 33 | 34 | 40 | Matches Other Field 41 | 42 | No addresses found 43 | No transaction found 44 | No notes found 45 | No application found to handle this action! 46 | Application found. 47 | 48 | Transaction Description 49 | 2016-12-31 50 | 51 | 52 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 17 | 18 | 21 | 22 | 25 | 26 | 30 | 31 | 37 | 38 | 43 | 44 | 48 | 49 | 56 | 57 | 61 | 62 |