We want to make it clear for users (who are here developers in fact) having the source code to see how the app works and there is no other things behind the scenes. Also no ads, no paid content:)
![](https://private-user-images.githubusercontent.com/79689735/345891785-da1993c5-6f02-4404-a07b-5b75b35f66ef.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYwNzg5NDEsIm5iZiI6MTcyNjA3ODY0MSwicGF0aCI6Ii83OTY4OTczNS8zNDU4OTE3ODUtZGExOTkzYzUtNmYwMi00NDA0LWEwN2ItNWI3NWIzNWY2NmVmLmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTExVDE4MTcyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgxNTFiN2MzMzdjYzE3OWFlOWY5NWQwNWEyNzk4ZjQ4ZjI3OGIzMGI2NWM0ZWJiNDU2NTA0MDlmZDgxNzQ0NjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.EeN0_-FtX-rUHi4WwuW7UDz2Zzc2D0cOglzN23jYpZo)
App tech stack includes:
- Language - 100% Kotlin
- Environment - Android Studio
- Navigation - Cicerone
- Database - RoomDB
- Network - Retrofit
- Dependency injection - Hilt
- Testing - Junit/Espresso
- Other - Google OAuth, Firebase
-
Download the OpenSmsForwarder source code
by HTTPS
git clone https://github.com/Mobile-Innowise-Group/opensmsforwarder.git
or by SSH
git clone git@github.com:Mobile-Innowise-Group/opensmsforwarder.git
-
Create and setup the Firebase project for Android app (https://firebase.google.com/docs/android/setup, https://youtu.be/jbHfJpoOzkI?t=187).
-
Enable Google as a sign-in method in the Firebase console (https://firebase.google.com/docs/auth/android/google-signin#before_you_begin): -- Open the Auth section -- Click on the Sign in method tab -- Enable the Google sign-in method -- Click Save
-
Download the updated Firebase config file (google-services.json), which now contains the OAuth client information required for Google sign-in and put it in app/google-services.json.
-
Generate debug key, name it "debug.jks" and put it in app/keystore/debug/ directory (https://developer.android.com/studio/publish/app-signing#generate-key)
-
Sync and build the project (Don't bother if you gave any errors while building on this step:).
-
Open app/keystore/debug/debug.properties file (was generated on previous step) and replace DEBUG_KEYSTORE_ALIAS, DEBUG_KEYSTORE_PASSWORD, DEBUG_KEY_PASSWORD with your actual values.
DEBUG_KEYSTORE_ALIAS=YOUR_VALUE
DEBUG_KEYSTORE_PASSWORD=YOUR_VALUE
DEBUG_KEY_PASSWORD=YOUR_VALUE
- run ./gradlew signingReport in terminal task and copy SHA-1 value of your debug key.
- Add the SHA-1 debug key to the projects setting in the Firebase Console (https://support.google.com/firebase/answer/9137403?hl=en)
- Go to Google Cloud Console, choose your project and enable Gmail API. (https://cloud.google.com/endpoints/docs/openapi/enable-api#console)
- Setup WebClient for Google Authentication and fill configure your OAuth Consent Screen Note!: The Web Client is automatically generated throug the Firabase project - Web client (auto created by Google Service). No need to create a new one (https://developers.google.com/identity/gsi/web/guides/get-google-api-clientid)
- Open apikey.properties file and replace CLIENT_ID, CLIENT_SECRET, REDIRECT_URI values with your ones. Get this values from Web client (auto created by Google Service)
CLIENT_ID=YOUR_CLIENT_ID
CLIENT_SECRET=YOUR_CLIENT_SECRET
REDIRECT_URI=YOUR_REDIRECT_URI
- Build and launch the app :)
MIT License
Copyright (c) 2019 Innowise Group
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies
or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.