Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Add Firebase Crashlytics #542

Closed
wants to merge 8 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ crashlytics-build.properties
com_crashlytics_export_strings.xml
fabric.properties

#Firebase
/google-services.json

# Key
signing.properties
amahi-release-key.keystore
Expand Down
3 changes: 3 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ android:
licenses:
- .+

script:
- ./gradlew clean build -Pbuild=dev

before_script:
- echo no | android create avd --force -n test -t android-19 --abi armeabi-v7a
- emulator -avd test -no-audio -no-window &
Expand Down
39 changes: 29 additions & 10 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
google()
jcenter()
}

dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
classpath 'io.fabric.tools:gradle:1.26.1'
}
}

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

android {
compileSdkVersion 28
Expand Down Expand Up @@ -80,6 +77,10 @@ android {
release {
signingConfig signingConfigs.release
}

dev {
signingConfig signingConfigs.debug
}
}

android {
Expand All @@ -93,6 +94,26 @@ android {
}
}

//Note: Here we are checking if it's the dev build environment which is invoked in Travis

def build_param = "${build}";

if (build_param != "dev") {
//exclude production build
android.variantFilter { variant ->
if (variant.buildType.name.equals('dev')) {
variant.setIgnore(true);
}
}
} else {
//exclude all except production build
android.variantFilter { variant ->
if (!variant.buildType.name.equals('dev')) {
variant.setIgnore(true);
}
}
}

ext {
archRoomVersion = "1.1.0"
}
Expand All @@ -114,7 +135,6 @@ dependencies {
google()
mavenCentral()
mavenLocal()
maven { url 'https://maven.fabric.io/public' }
maven { url 'http://dl.bintray.com/megabitdragon/maven' }
maven { url 'https://jitpack.io' }
jcenter()
Expand All @@ -131,10 +151,7 @@ dependencies {
implementation "androidx.mediarouter:mediarouter:${SUPPORT_LIBRARY_VERSION}"
implementation "androidx.media:media:${SUPPORT_LIBRARY_VERSION}"
implementation "androidx.cardview:cardview:${SUPPORT_LIBRARY_VERSION}"
implementation 'com.google.android.gms:play-services-cast-framework:11.6.0'
implementation('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') {
transitive = true
}
implementation 'com.google.android.gms:play-services-cast-framework:18.1.0'
implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
implementation 'com.github.dmytrodanylyk.android-process-button:library:1.0.4'
implementation 'com.jakewharton.timber:timber:4.5.1'
Expand All @@ -160,9 +177,8 @@ dependencies {

// Dagger
implementation 'com.squareup.dagger:dagger:1.2.5'
compileOnly 'com.squareup.dagger:dagger-compiler:1.2.5'
annotationProcessor 'com.squareup.dagger:dagger-compiler:1.2.5'

implementation 'com.github.blinkist.dagger2-shaded:dagger2-shaded-library:2.27'

implementation 'com.github.wseemann:FFmpegMediaMetadataRetriever:1.0.14'
implementation 'com.google.android.exoplayer:exoplayer-core:2.7.3'
Expand All @@ -178,6 +194,9 @@ dependencies {
betaReleaseImplementation 'com.readystatesoftware.chuck:library-no-op:1.1.0'
*/

// Firebase
implementation 'com.google.firebase:firebase-crashlytics:17.1.0'

}

task generateWrapper(type: Wrapper) {
Expand Down
51 changes: 51 additions & 0 deletions src/dev/google-services.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"project_info": {
"project_number": "",
"project_id": ""
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:123456789012:android:1234567890123456",
"android_client_info": {
"package_name": "org.amahi.anywhere"
}
},
"oauth_client": [
{
"client_id": "",
"client_type": 3
},
{
"client_id": "",
"client_type": 1,
"android_info": {
"package_name": "org.amahi.anywhere",
"certificate_hash": ""
}
}
],
"api_key": [
{
"current_key": ""
}
],
"services": {
"analytics_service": {
"status": 2,
"analytics_property": {
"tracking_id": ""
}
},
"appinvite_service": {
"status": 1,
"other_platform_oauth_client": []
},
"ads_service": {
"status": 1
}
}
}
],
"configuration_version": "1"
}
4 changes: 0 additions & 4 deletions src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,6 @@
android:name=".job.NetConnectivityJob"
android:permission="android.permission.BIND_JOB_SERVICE" />

<meta-data
android:name="com.crashlytics.ApiKey"
android:value="d7b65346d3cf0028328f006bff447501d70f8996" />

<activity
android:name=".activity.WebViewActivity"
android:label="@string/title_version_settings" />
Expand Down
15 changes: 7 additions & 8 deletions src/main/java/org/amahi/anywhere/AmahiApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,12 @@
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatDelegate;

import com.crashlytics.android.Crashlytics;

import org.amahi.anywhere.job.NetConnectivityJob;
import org.amahi.anywhere.job.PhotosContentJob;

import dagger.ObjectGraph;
import io.fabric.sdk.android.Fabric;

import timber.log.Timber;

/**
Expand Down Expand Up @@ -67,7 +66,7 @@ public void onCreate() {

instance = this;
setUpLogging();
setUpReporting();
// setUpReporting();
setUpDetecting();

setUpInjections();
Expand Down Expand Up @@ -111,11 +110,11 @@ private boolean isDebugging() {
return BuildConfig.DEBUG;
}

private void setUpReporting() {
if (!isDebugging()) {
Fabric.with(this, new Crashlytics());
}
}
// private void setUpReporting() {
// if (!isDebugging()) {
// // Can disable Crashlytics for Debug Mode
// }
// }

private void setUpDetecting() {
if (isDebugging()) {
Expand Down
7 changes: 7 additions & 0 deletions src/main/java/org/amahi/anywhere/AmahiModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,20 @@
import org.amahi.anywhere.util.UploadManager;

import javax.inject.Singleton;
import javax.inject.Singleton2;

import dagger.Module;
import dagger.Module2;
import dagger.Provides;

/**
* Application dependency injection module. Includes {@link org.amahi.anywhere.server.ApiModule} and
* provides application's {@link android.content.Context} for possible consumers.
*/
@Module2(includes = {
ApiModule.class,
CacheModule.class
})
@Module(
includes = {
ApiModule.class,
Expand Down Expand Up @@ -119,6 +125,7 @@ public AmahiModule(Application application) {

@Provides
@Singleton
@Singleton2
Context provideContext() {
return application;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import android.widget.VideoView;

import com.google.android.gms.cast.MediaInfo;
import com.google.android.gms.cast.MediaLoadOptions;
import com.google.android.gms.cast.MediaMetadata;
import com.google.android.gms.cast.framework.CastButtonFactory;
import com.google.android.gms.cast.framework.CastContext;
Expand Down Expand Up @@ -347,7 +348,15 @@ public void onAdBreakStatusUpdated() {

}
});
remoteMediaClient.load(buildMediaInfo(), autoPlay, position);

remoteMediaClient.load(buildMediaInfo(), buildMediaLoadOptions(autoPlay, position));
}

private MediaLoadOptions buildMediaLoadOptions(boolean autoPlay, int position) {
return new MediaLoadOptions.Builder()
.setAutoplay(autoPlay)
.setPlayPosition(position)
.build();
}

private MediaInfo buildMediaInfo() {
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/org/amahi/anywhere/cache/CacheModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,21 +22,25 @@
import android.content.Context;

import javax.inject.Singleton;
import javax.inject.Singleton2;

import dagger.Module;
import dagger.Module2;
import dagger.Provides;

/**
* Cache dependency injection module.
* Provides Singleton {@link CacheManager} for possible consumers.
*/
@Module2
@Module(
complete = false,
library = true
)
public class CacheModule {
@Provides
@Singleton
@Singleton2
CacheManager provideCacheManager(Context context) {
return new CacheManager(context);
}
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/org/amahi/anywhere/server/ApiAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

import javax.inject.Inject;
import javax.inject.Singleton;
import javax.inject.Singleton2;

import okhttp3.OkHttpClient;
import retrofit2.Converter.Factory;
Expand All @@ -32,6 +33,7 @@
* dependency injection provided components.
*/
@Singleton
@Singleton2
public class ApiAdapter {
private final Retrofit.Builder apiBuilder;

Expand Down
9 changes: 8 additions & 1 deletion src/main/java/org/amahi/anywhere/server/ApiModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,10 @@
import org.amahi.anywhere.util.Time;

import javax.inject.Singleton;
import javax.inject.Singleton2;

import dagger.Module;
import dagger.Module2;
import dagger.Provides;
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
Expand All @@ -40,11 +42,11 @@
* API dependency injection module. Provides resources such as HTTP client and JSON converter
* for possible consumers.
*/

@Module(
complete = false,
library = true
)
@Module2
public class ApiModule {

/**
Expand All @@ -57,6 +59,7 @@ public class ApiModule {

@Provides
@Singleton
@Singleton2
OkHttpClient provideHttpClient(ApiHeaders headers, HttpLoggingInterceptor logging) {
OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder();

Expand All @@ -68,6 +71,7 @@ OkHttpClient provideHttpClient(ApiHeaders headers, HttpLoggingInterceptor loggin

@Provides
@Singleton
@Singleton2
ApiHeaders provideHeaders(Context context) {
return new ApiHeaders(context);
}
Expand All @@ -85,18 +89,21 @@ ChuckInterceptor provideChuckInterceptor(Context context) {
*/
@Provides
@Singleton
@Singleton2
Converter.Factory provideJsonConverterFactory(Gson json) {
return GsonConverterFactory.create(json);
}

@Provides
@Singleton
@Singleton2
Gson provideJson() {
return new GsonBuilder().setDateFormat(Time.Format.RFC_1123).create();
}

@Provides
@Singleton
@Singleton2
HttpLoggingInterceptor provideLogging() {
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,13 @@

import javax.inject.Inject;
import javax.inject.Singleton;
import javax.inject.Singleton2;

/**
* Amahi API implementation. Wraps {@link org.amahi.anywhere.server.api.AmahiApi}.
*/
@Singleton
@Singleton2
public class AmahiClient {
private final AmahiApi api;

Expand Down
Loading