diff --git a/app/build.gradle b/app/build.gradle index b4892b9..9711df6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,5 +1,6 @@ apply plugin: 'com.android.application' apply plugin: 'io.fabric' +apply plugin: 'com.google.firebase.firebase-perf' android { compileSdkVersion 27 @@ -7,7 +8,7 @@ android { applicationId "javinator9889.bitcoinpools" minSdkVersion 21 targetSdkVersion 27 - versionCode 63 + versionCode 64 versionName "1.18.1" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } @@ -33,8 +34,14 @@ dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:appcompat-v7:27.1.0' implementation 'com.android.support.constraint:constraint-layout:1.0.2' + compile 'com.google.firebase:firebase-core:11.8.0' implementation 'com.google.firebase:firebase-crash:11.8.0' implementation 'com.google.firebase:firebase-invites:11.8.0' + implementation 'com.google.firebase:firebase-appindexing:11.8.0' + compile 'com.google.firebase:firebase-perf:11.8.0' + compile('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') { + transitive = true + } testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' @@ -53,10 +60,7 @@ dependencies { compile 'com.android.support:cardview-v7:27.1.0' compile 'com.android.support:recyclerview-v7:27.1.0' compile 'com.jpardogo.materialtabstrip:library:1.1.1' - compile 'com.google.firebase:firebase-core:11.8.0' - compile('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') { - transitive = true - } compile 'org.sufficientlysecure:donations:2.5' + } apply plugin: 'com.google.gms.google-services' diff --git a/app/release/BitCoinPools-1.18.1.apk b/app/release/BitCoinPools-1.18.1.apk index 711b166..cc8d5f5 100644 Binary files a/app/release/BitCoinPools-1.18.1.apk and b/app/release/BitCoinPools-1.18.1.apk differ diff --git a/app/release/output.json b/app/release/output.json index f193b77..8333547 100644 --- a/app/release/output.json +++ b/app/release/output.json @@ -1 +1 @@ -[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":63},"path":"app-release.apk","properties":{"packageId":"javinator9889.bitcoinpools","split":"","minSdkVersion":"21"}}] \ No newline at end of file +[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":64},"path":"app-release.apk","properties":{"packageId":"javinator9889.bitcoinpools","split":"","minSdkVersion":"21"}}] \ No newline at end of file diff --git a/app/src/main/java/javinator9889/bitcoinpools/BitCoinApp.java b/app/src/main/java/javinator9889/bitcoinpools/BitCoinApp.java index 5cff392..a9caf96 100644 --- a/app/src/main/java/javinator9889/bitcoinpools/BitCoinApp.java +++ b/app/src/main/java/javinator9889/bitcoinpools/BitCoinApp.java @@ -11,9 +11,12 @@ import android.content.pm.PackageManager; import android.net.ConnectivityManager; import android.net.NetworkInfo; +import android.os.Bundle; import android.util.Log; import com.crashlytics.android.Crashlytics; +import com.google.firebase.analytics.FirebaseAnalytics; +import com.google.firebase.perf.metrics.AddTrace; import java.io.IOException; import java.text.DateFormat; @@ -40,6 +43,7 @@ public class BitCoinApp extends Application { @SuppressLint("StaticFieldLeak") private static Context APPLICATION_CONTEXT; private static SharedPreferences SHARED_PREFERENCES; + private static FirebaseAnalytics firebaseAnalytics; public static Context getAppContext() { return APPLICATION_CONTEXT; @@ -49,8 +53,14 @@ public static SharedPreferences getSharedPreferences() { return SHARED_PREFERENCES; } + public static FirebaseAnalytics getFirebaseAnalytics() { + return firebaseAnalytics; + } + @Override + @AddTrace(name = "onCreateApplication") public void onCreate() { + firebaseAnalytics = FirebaseAnalytics.getInstance(this); APPLICATION_CONTEXT = getApplicationContext(); SHARED_PREFERENCES = getSharedPreferences( Constants.SHARED_PREFERENCES.SHARED_PREFERENCES_KEY, @@ -62,6 +72,10 @@ public void onCreate() { startBackgroundJobs(); super.onCreate(); Log.d(Constants.LOG.BCTAG, Constants.LOG.CREATED_APP); + Bundle bundle = new Bundle(); + bundle.putString(FirebaseAnalytics.Param.START_DATE, Calendar.getInstance() + .getTime().toString()); + firebaseAnalytics.logEvent(FirebaseAnalytics.Event.APP_OPEN, bundle); } private static void startBackgroundJobs() { diff --git a/app/src/main/java/javinator9889/bitcoinpools/DataLoaderScreen.java b/app/src/main/java/javinator9889/bitcoinpools/DataLoaderScreen.java index 7881bfb..981d854 100644 --- a/app/src/main/java/javinator9889/bitcoinpools/DataLoaderScreen.java +++ b/app/src/main/java/javinator9889/bitcoinpools/DataLoaderScreen.java @@ -11,6 +11,7 @@ import com.afollestad.materialdialogs.DialogAction; import com.afollestad.materialdialogs.MaterialDialog; +import com.google.firebase.perf.metrics.AddTrace; import org.json.JSONObject; @@ -40,6 +41,7 @@ public class DataLoaderScreen extends AppCompatActivity { private HashMap btcPrice; @Override + @AddTrace(name = "getApplicationValues") protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); dataLoaderScreenActivity = this; diff --git a/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/DonationsActivity.java b/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/DonationsActivity.java index a62e505..413b0ef 100644 --- a/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/DonationsActivity.java +++ b/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/DonationsActivity.java @@ -17,10 +17,12 @@ import com.afollestad.materialdialogs.MaterialDialog; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GoogleApiAvailability; +import com.google.firebase.analytics.FirebaseAnalytics; import org.sufficientlysecure.donations.BuildConfig; import org.sufficientlysecure.donations.DonationsFragment; +import javinator9889.bitcoinpools.BitCoinApp; import javinator9889.bitcoinpools.R; import static javinator9889.bitcoinpools.Constants.PAYMENTS.GOOGLE_CATALOG; @@ -58,16 +60,6 @@ public void onCreate(Bundle savedInstanceState) { noDonationsAvailableText.setTextColor(Color.RED); noDonationsAvailableText.setText(R.string.noDonationsAvailable); } - - /*Button payPalButton = findViewById(R.id.donations__paypal_modified_donate_button); - payPalButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Uri uri = Uri.parse(Constants.PAYMENTS.PAYPALME); - Intent browserIntent = new Intent(Intent.ACTION_VIEW, uri); - startActivity(browserIntent); - } - });*/ } @Override @@ -107,12 +99,15 @@ public void onBackPressed() { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - FragmentManager fragmentManager = getSupportFragmentManager(); Fragment fragment = fragmentManager.findFragmentByTag("donationsFragment"); if (fragment != null) { fragment.onActivityResult(requestCode, resultCode, data); } + Bundle bundle = new Bundle(); + bundle.putString(FirebaseAnalytics.Param.TRANSACTION_ID, String.valueOf(resultCode)); + bundle.putBundle(FirebaseAnalytics.Param.VALUE, data.getExtras()); + BitCoinApp.getFirebaseAnalytics().logEvent(FirebaseAnalytics.Event.BEGIN_CHECKOUT, bundle); } public boolean isGooglePlayServicesAvailable(Activity activity) { diff --git a/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/Tab1PoolsChart.java b/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/Tab1PoolsChart.java index 15320da..953be4e 100644 --- a/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/Tab1PoolsChart.java +++ b/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/Tab1PoolsChart.java @@ -21,6 +21,7 @@ import com.github.mikephil.charting.data.PieDataSet; import com.github.mikephil.charting.data.PieEntry; import com.github.mikephil.charting.utils.ColorTemplate; +import com.google.firebase.perf.metrics.AddTrace; import java.util.ArrayList; import java.util.HashMap; @@ -58,6 +59,7 @@ public static Tab1PoolsChart newInstance(Object... params) { @SuppressWarnings("unchecked") @Override + @AddTrace(name = "onCreateViewForTab1") public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View createdView = inflater.inflate(R.layout.poolschart, container, false); diff --git a/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/Tab2BTCChart.java b/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/Tab2BTCChart.java index 9bcd8bb..8e72fe8 100644 --- a/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/Tab2BTCChart.java +++ b/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/Tab2BTCChart.java @@ -34,6 +34,7 @@ import com.github.mikephil.charting.data.LineDataSet; import com.github.mikephil.charting.formatter.LargeValueFormatter; import com.github.mikephil.charting.interfaces.datasets.ILineDataSet; +import com.google.firebase.perf.metrics.AddTrace; import org.json.JSONException; @@ -97,6 +98,7 @@ public static Tab2BTCChart newInstance(Object... params) { @SuppressWarnings("unchecked") @Override + @AddTrace(name = "onCreateViewForTab2") public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { DisplayMetrics dp = this.getResources().getDisplayMetrics(); diff --git a/app/src/main/java/javinator9889/bitcoinpools/MainActivity.java b/app/src/main/java/javinator9889/bitcoinpools/MainActivity.java index f1f1eb7..bdbe5d4 100644 --- a/app/src/main/java/javinator9889/bitcoinpools/MainActivity.java +++ b/app/src/main/java/javinator9889/bitcoinpools/MainActivity.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Intent; +import android.content.IntentSender; import android.content.SharedPreferences; import android.net.Uri; import android.os.Bundle; @@ -18,6 +19,8 @@ import android.widget.Toast; import com.afollestad.materialdialogs.MaterialDialog; +import com.google.firebase.analytics.FirebaseAnalytics; +import com.google.firebase.perf.metrics.AddTrace; import java.math.BigDecimal; import java.util.Date; @@ -42,6 +45,7 @@ public class MainActivity extends AppCompatActivity { @Override @SuppressWarnings("unchecked") + @AddTrace(name = "onCreateMainActivity") protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mainActivity = this; @@ -106,6 +110,9 @@ protected void onCreate(Bundle savedInstanceState) { Log.d(Constants.LOG.MATAG, Constants.LOG.CREATING_CHART); Log.d(Constants.LOG.MATAG, Constants.LOG.LISTENING); + Bundle bundle = new Bundle(); + bundle.putString(FirebaseAnalytics.Param.VALUE, "MainActivity created"); + BitCoinApp.getFirebaseAnalytics().logEvent(FirebaseAnalytics.Event.VIEW_ITEM, bundle); try { ck.checkForUpdates(this, getString(R.string.updateAvailable), @@ -195,7 +202,8 @@ public void run() { getString(R.string.inv_message) + " - Google Play Store: " + googlePlayLink.toString()); - startActivity(Intent.createChooser(shareAppIntent, getString(R.string.invitation_title))); + startActivity(Intent.createChooser(shareAppIntent, + getString(R.string.invitation_title))); break; case R.id.donate: Intent donateIntent = new Intent(MainActivity.this, diff --git a/build.gradle b/build.gradle index cc89917..e1a8a1b 100644 --- a/build.gradle +++ b/build.gradle @@ -13,6 +13,7 @@ buildscript { classpath 'com.android.tools.build:gradle:3.0.1' classpath 'com.google.gms:google-services:3.2.0' classpath 'io.fabric.tools:gradle:1.24.4' + classpath 'com.google.firebase:firebase-plugins:1.1.5' // NOTE: Do not place your application dependencies here; they belong