{"sha":"91a7f2b421ce196a68e7fe5c8a460b83992f5fa5","node_id":"MDY6Q29tbWl0MTgyNjM2MTY6OTFhN2YyYjQyMWNlMTk2YTY4ZTdmZTVjOGE0NjBiODM5OTJmNWZhNQ==","commit":{"author":{"name":"Robin Jacobs","email":"robin@robinj.be","date":"2019-06-08T12:05:17Z"},"committer":{"name":"Robin Jacobs","email":"robin@robinj.be","date":"2019-06-08T12:06:11Z"},"message":"Get rid of Google Analytics, start replacing with ACRA","tree":{"sha":"1aa7d597156d5dc5775899ddafe30ebc78df7442","url":"https://api.github.com/repos/RobinJ1995/DistroHopper/git/trees/1aa7d597156d5dc5775899ddafe30ebc78df7442"},"url":"https://api.github.com/repos/RobinJ1995/DistroHopper/git/commits/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5","comment_count":0,"verification":{"verified":false,"reason":"unsigned","signature":null,"payload":null}},"url":"https://api.github.com/repos/RobinJ1995/DistroHopper/commits/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5","html_url":"https://github.com/RobinJ1995/DistroHopper/commit/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5","comments_url":"https://api.github.com/repos/RobinJ1995/DistroHopper/commits/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/comments","author":{"login":"RobinJ1995","id":3089559,"node_id":"MDQ6VXNlcjMwODk1NTk=","avatar_url":"https://avatars.githubusercontent.com/u/3089559?v=4","gravatar_id":"","url":"https://api.github.com/users/RobinJ1995","html_url":"https://github.com/RobinJ1995","followers_url":"https://api.github.com/users/RobinJ1995/followers","following_url":"https://api.github.com/users/RobinJ1995/following{/other_user}","gists_url":"https://api.github.com/users/RobinJ1995/gists{/gist_id}","starred_url":"https://api.github.com/users/RobinJ1995/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RobinJ1995/subscriptions","organizations_url":"https://api.github.com/users/RobinJ1995/orgs","repos_url":"https://api.github.com/users/RobinJ1995/repos","events_url":"https://api.github.com/users/RobinJ1995/events{/privacy}","received_events_url":"https://api.github.com/users/RobinJ1995/received_events","type":"User","site_admin":false},"committer":{"login":"RobinJ1995","id":3089559,"node_id":"MDQ6VXNlcjMwODk1NTk=","avatar_url":"https://avatars.githubusercontent.com/u/3089559?v=4","gravatar_id":"","url":"https://api.github.com/users/RobinJ1995","html_url":"https://github.com/RobinJ1995","followers_url":"https://api.github.com/users/RobinJ1995/followers","following_url":"https://api.github.com/users/RobinJ1995/following{/other_user}","gists_url":"https://api.github.com/users/RobinJ1995/gists{/gist_id}","starred_url":"https://api.github.com/users/RobinJ1995/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RobinJ1995/subscriptions","organizations_url":"https://api.github.com/users/RobinJ1995/orgs","repos_url":"https://api.github.com/users/RobinJ1995/repos","events_url":"https://api.github.com/users/RobinJ1995/events{/privacy}","received_events_url":"https://api.github.com/users/RobinJ1995/received_events","type":"User","site_admin":false},"parents":[{"sha":"639de35f8328e96e705d404352e7bf5e37bd5693","url":"https://api.github.com/repos/RobinJ1995/DistroHopper/commits/639de35f8328e96e705d404352e7bf5e37bd5693","html_url":"https://github.com/RobinJ1995/DistroHopper/commit/639de35f8328e96e705d404352e7bf5e37bd5693"}],"stats":{"total":142,"additions":56,"deletions":86},"files":[{"sha":"b7f4d9fc06490ae9b1d6c9855c83151c065f2a5f","filename":"DistroHopper/.gitignore","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/RobinJ1995/DistroHopper/blob/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/DistroHopper%2F.gitignore","raw_url":"https://github.com/RobinJ1995/DistroHopper/raw/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/DistroHopper%2F.gitignore","contents_url":"https://api.github.com/repos/RobinJ1995/DistroHopper/contents/DistroHopper%2F.gitignore?ref=91a7f2b421ce196a68e7fe5c8a460b83992f5fa5","patch":"@@ -11,3 +11,4 @@ app-release.apk\n /app/release/\n /app/build/\n /.idea/\n+iconpack/"},{"sha":"5e45fd8bb3bd546ca50e9c0105ea531af4702166","filename":"DistroHopper/app/build.gradle","status":"modified","additions":6,"deletions":2,"changes":8,"blob_url":"https://github.com/RobinJ1995/DistroHopper/blob/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/DistroHopper%2Fapp%2Fbuild.gradle","raw_url":"https://github.com/RobinJ1995/DistroHopper/raw/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/DistroHopper%2Fapp%2Fbuild.gradle","contents_url":"https://api.github.com/repos/RobinJ1995/DistroHopper/contents/DistroHopper%2Fapp%2Fbuild.gradle?ref=91a7f2b421ce196a68e7fe5c8a460b83992f5fa5","patch":"@@ -39,6 +39,10 @@ dependencies {\n compile 'com.android.support:appcompat-v7:27.1.1'\n compile 'com.android.support:gridlayout-v7:27.1.1'\n compile 'asia.ivity.android:drag-sort-listview:1.0'\n- compile 'com.google.android.gms:play-services-analytics:7.5.0'\n- compile 'org.sufficientlysecure:donations:2.5'\n+ compile 'org.sufficientlysecure:donations:2.6'\n+\n+ // ACRA\n+ def acraVersion = '5.3.0'\n+ implementation \"ch.acra:acra-http:$acraVersion\"\n+ implementation \"ch.acra:acra-toast:$acraVersion\"\n }"},{"sha":"bd13378b73d7c30d8cc8d3f03b1e217fac895228","filename":"DistroHopper/app/src/androidTest/java/be/robinj/distrohopper/AppTest.java","status":"added","additions":20,"deletions":0,"changes":20,"blob_url":"https://github.com/RobinJ1995/DistroHopper/blob/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/DistroHopper%2Fapp%2Fsrc%2FandroidTest%2Fjava%2Fbe%2Frobinj%2Fdistrohopper%2FAppTest.java","raw_url":"https://github.com/RobinJ1995/DistroHopper/raw/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/DistroHopper%2Fapp%2Fsrc%2FandroidTest%2Fjava%2Fbe%2Frobinj%2Fdistrohopper%2FAppTest.java","contents_url":"https://api.github.com/repos/RobinJ1995/DistroHopper/contents/DistroHopper%2Fapp%2Fsrc%2FandroidTest%2Fjava%2Fbe%2Frobinj%2Fdistrohopper%2FAppTest.java?ref=91a7f2b421ce196a68e7fe5c8a460b83992f5fa5","patch":"@@ -0,0 +1,20 @@\n+package be.robinj.distrohopper;\n+\n+import static org.junit.Assert.*;\n+\n+import org.junit.After;\n+import org.junit.Before;\n+import org.junit.Test;\n+\n+public class AppTest {\n+\n+\n+\n+\tpublic void setUp() throws Exception {\n+\n+\t}\n+\n+\t@Test\n+\tpublic void testGetLabel() {\n+\t}\n+}\n\\ No newline at end of file"},{"sha":"760ff8487cbdac25fbc1ed05e2a3840fbe797a73","filename":"DistroHopper/app/src/androidTest/java/be/robinj/ubuntu/ApplicationTest.java","status":"removed","additions":0,"deletions":13,"changes":13,"blob_url":"https://github.com/RobinJ1995/DistroHopper/blob/639de35f8328e96e705d404352e7bf5e37bd5693/DistroHopper%2Fapp%2Fsrc%2FandroidTest%2Fjava%2Fbe%2Frobinj%2Fubuntu%2FApplicationTest.java","raw_url":"https://github.com/RobinJ1995/DistroHopper/raw/639de35f8328e96e705d404352e7bf5e37bd5693/DistroHopper%2Fapp%2Fsrc%2FandroidTest%2Fjava%2Fbe%2Frobinj%2Fubuntu%2FApplicationTest.java","contents_url":"https://api.github.com/repos/RobinJ1995/DistroHopper/contents/DistroHopper%2Fapp%2Fsrc%2FandroidTest%2Fjava%2Fbe%2Frobinj%2Fubuntu%2FApplicationTest.java?ref=639de35f8328e96e705d404352e7bf5e37bd5693","patch":"@@ -1,13 +0,0 @@\n-package be.robinj.distrohopper;\n-\n-import android.app.Application;\n-import android.test.ApplicationTestCase;\n-\n-/**\n- * Testing Fundamentals\n- */\n-public class ApplicationTest extends ApplicationTestCase {\n- public ApplicationTest() {\n- super(Application.class);\n- }\n-}\n\\ No newline at end of file"},{"sha":"ba908addedd41c7df4dd0cfe929a6404e2ab13ed","filename":"DistroHopper/app/src/main/AndroidManifest.xml","status":"modified","additions":0,"deletions":17,"changes":17,"blob_url":"https://github.com/RobinJ1995/DistroHopper/blob/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/DistroHopper%2Fapp%2Fsrc%2Fmain%2FAndroidManifest.xml","raw_url":"https://github.com/RobinJ1995/DistroHopper/raw/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/DistroHopper%2Fapp%2Fsrc%2Fmain%2FAndroidManifest.xml","contents_url":"https://api.github.com/repos/RobinJ1995/DistroHopper/contents/DistroHopper%2Fapp%2Fsrc%2Fmain%2FAndroidManifest.xml?ref=91a7f2b421ce196a68e7fe5c8a460b83992f5fa5","patch":"@@ -94,22 +94,5 @@\n \t\t\t\tandroid:name=\"android.support.PARENT_ACTIVITY\"\n \t\t\t\tandroid:value=\"be.robinj.distrohopper.preferences.PreferencesActivity\" />\n \t\t\n-\n-\t\t\n-\t\t\n-\n-\t\t\n-\t\t\t\n-\t\t\t\t\n-\t\t\t\n-\t\t\n-\t\t\n \t\n "},{"sha":"5500eb1f0d68fb90d4fbd6369b2e3f323bd0825f","filename":"DistroHopper/app/src/main/java/be/robinj/distrohopper/Application.java","status":"modified","additions":23,"deletions":16,"changes":39,"blob_url":"https://github.com/RobinJ1995/DistroHopper/blob/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/DistroHopper%2Fapp%2Fsrc%2Fmain%2Fjava%2Fbe%2Frobinj%2Fdistrohopper%2FApplication.java","raw_url":"https://github.com/RobinJ1995/DistroHopper/raw/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/DistroHopper%2Fapp%2Fsrc%2Fmain%2Fjava%2Fbe%2Frobinj%2Fdistrohopper%2FApplication.java","contents_url":"https://api.github.com/repos/RobinJ1995/DistroHopper/contents/DistroHopper%2Fapp%2Fsrc%2Fmain%2Fjava%2Fbe%2Frobinj%2Fdistrohopper%2FApplication.java?ref=91a7f2b421ce196a68e7fe5c8a460b83992f5fa5","patch":"@@ -1,30 +1,37 @@\n package be.robinj.distrohopper;\n \n-import com.google.android.gms.analytics.GoogleAnalytics;\n-import com.google.android.gms.analytics.Tracker;\n+import android.content.Context;\n+import android.widget.Toast;\n+\n+import org.acra.ACRA;\n+import org.acra.annotation.AcraCore;\n+import org.acra.annotation.AcraHttpSender;\n+import org.acra.annotation.AcraToast;\n+import org.acra.data.StringFormat;\n+import org.acra.sender.HttpSender;\n \n /**\n * Created by robin on 8/22/14.\n */\n+@AcraCore(buildConfigClass = BuildConfig.class,\n+\talsoReportToAndroidFramework = true,\n+\treportFormat = StringFormat.JSON)\n+@AcraHttpSender(uri = \"https://acra.robinj.be/crash\",\n+\thttpMethod = HttpSender.Method.POST,\n+\tbasicAuthLogin = \"\", //TODO// Find a way to keep these secret //\n+\tbasicAuthPassword = \"\")\n+@AcraToast(resText = R.string.toast_sending_crash_report,\n+\tlength = Toast.LENGTH_SHORT)\n public class Application extends android.app.Application\n {\n-\tprivate static GoogleAnalytics analytics;\n-\tprivate static Tracker tracker;\n+\tprivate static Tracker tracker = new Tracker();\n \n \t@Override\n-\tpublic void onCreate ()\n-\t{\n-\t\tApplication.analytics = GoogleAnalytics.getInstance (this);\n-\t\tApplication.analytics.setLocalDispatchPeriod (1800);\n+\tprotected void attachBaseContext(final Context base) {\n+\t\tsuper.attachBaseContext(base);\n \n-\t\tApplication.tracker = Application.analytics.newTracker (\"UA-37908259-1\");\n-\t\tApplication.tracker.enableExceptionReporting (true);\n-\t\tApplication.tracker.enableAutoActivityTracking (true);\n-\t}\n-\n-\tpublic static GoogleAnalytics getAnalytics ()\n-\t{\n-\t\treturn Application.analytics;\n+\t\t// The following line triggers the initialization of ACRA\n+\t\tACRA.init(this);\n \t}\n \n \tpublic static Tracker getTracker ()"},{"sha":"44e61869db077a6730b071363e4a5cc22871a3bc","filename":"DistroHopper/app/src/main/java/be/robinj/distrohopper/HomeActivity.java","status":"modified","additions":3,"deletions":18,"changes":21,"blob_url":"https://github.com/RobinJ1995/DistroHopper/blob/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/DistroHopper%2Fapp%2Fsrc%2Fmain%2Fjava%2Fbe%2Frobinj%2Fdistrohopper%2FHomeActivity.java","raw_url":"https://github.com/RobinJ1995/DistroHopper/raw/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/DistroHopper%2Fapp%2Fsrc%2Fmain%2Fjava%2Fbe%2Frobinj%2Fdistrohopper%2FHomeActivity.java","contents_url":"https://api.github.com/repos/RobinJ1995/DistroHopper/contents/DistroHopper%2Fapp%2Fsrc%2Fmain%2Fjava%2Fbe%2Frobinj%2Fdistrohopper%2FHomeActivity.java?ref=91a7f2b421ce196a68e7fe5c8a460b83992f5fa5","patch":"@@ -1184,12 +1184,7 @@ public void ibPanelDevLogs_clicked (View view)\n \t}\n \n \t//# Dash #//\n-\tvoid closeDash ()\n-\t{\n-\t\tthis.closeDash (false);\n-\t}\n-\n-\tprivate void closeDash (boolean track)\n+\tprivate void closeDash ()\n \t{\n \t\tif (! this.isDashOpened) {\n \t\t\treturn;\n@@ -1230,25 +1225,18 @@ private void closeDash (boolean track)\n \t\t\t}\n \t\t}\n \n+\n \t\tInputMethodManager imm = (InputMethodManager) this.getSystemService (Context.INPUT_METHOD_SERVICE);\n \t\tif (imm != null)\n \t\t\timm.hideSoftInputFromWindow (this.getWindow ().getDecorView ().getRootView ().getWindowToken (), 0);\n \n \t\tthis.flWallpaperOverlay.setVisibility (View.VISIBLE);\n \t\tthis.flWallpaperOverlayWhenDashOpened.setVisibility (View.INVISIBLE);\n \n-\t\tif (track)\n-\t\t\tTracker.trackEvent (\"Home\", \"Dash closed\", \"Dash\");\n-\n \t\tthis.isDashOpened = false;\n \t}\n \n-\tvoid openDash ()\n-\t{\n-\t\tthis.openDash (false);\n-\t}\n-\n-\tprivate void openDash (boolean track)\n+\tprivate void openDash ()\n \t{\n \t\tif (this.isDashOpened) {\n \t\t\treturn;\n@@ -1275,9 +1263,6 @@ private void openDash (boolean track)\n \t\tthis.flWallpaperOverlay.setVisibility (View.INVISIBLE);\n \t\tthis.flWallpaperOverlayWhenDashOpened.setVisibility (View.VISIBLE);\n \n-\t\tif (track)\n-\t\t\tTracker.trackEvent (\"Home\", \"Dash opened\", \"Dash\");\n-\n \t\tthis.isDashOpened = true;\n \t}\n "},{"sha":"744c2e58fb329ed1f6d6349f15927cbba3bc370d","filename":"DistroHopper/app/src/main/java/be/robinj/distrohopper/Tracker.java","status":"modified","additions":0,"deletions":19,"changes":19,"blob_url":"https://github.com/RobinJ1995/DistroHopper/blob/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/DistroHopper%2Fapp%2Fsrc%2Fmain%2Fjava%2Fbe%2Frobinj%2Fdistrohopper%2FTracker.java","raw_url":"https://github.com/RobinJ1995/DistroHopper/raw/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/DistroHopper%2Fapp%2Fsrc%2Fmain%2Fjava%2Fbe%2Frobinj%2Fdistrohopper%2FTracker.java","contents_url":"https://api.github.com/repos/RobinJ1995/DistroHopper/contents/DistroHopper%2Fapp%2Fsrc%2Fmain%2Fjava%2Fbe%2Frobinj%2Fdistrohopper%2FTracker.java?ref=91a7f2b421ce196a68e7fe5c8a460b83992f5fa5","patch":"@@ -1,26 +1,12 @@\n package be.robinj.distrohopper;\n \n-import com.google.android.gms.analytics.HitBuilders;\n-\n import java.util.Map;\n \n /**\n * Created by robin on 2/23/17.\n */\n public class Tracker\n {\n-\tpublic static void trackEvent (String category, String action, String label)\n-\t{\n-\t\tTracker.getTracker ().send\n-\t\t(\n-\t\t\tnew HitBuilders.EventBuilder ()\n-\t\t\t\t.setCategory (category)\n-\t\t\t\t.setAction (action)\n-\t\t\t\t.setLabel (label)\n-\t\t\t\t.build ()\n-\t\t);\n-\t}\n-\n \tpublic static void trackException (Exception ex)\n \t{\n \t\tStringBuilder stackTrace = new StringBuilder ();\n@@ -51,9 +37,4 @@ public static void trackException (Exception ex, String message)\n \n \t\tTracker.getTracker ().send (data);\n \t}\n-\n-\tprivate static com.google.android.gms.analytics.Tracker getTracker ()\n-\t{\n-\t\treturn Application.getTracker ();\n-\t}\n }"},{"sha":"338c9eb9e43e3fdf7d3bee7ed6d72fa29b2e3bd4","filename":"DistroHopper/app/src/main/res/values/strings.xml","status":"modified","additions":2,"deletions":0,"changes":2,"blob_url":"https://github.com/RobinJ1995/DistroHopper/blob/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/DistroHopper%2Fapp%2Fsrc%2Fmain%2Fres%2Fvalues%2Fstrings.xml","raw_url":"https://github.com/RobinJ1995/DistroHopper/raw/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/DistroHopper%2Fapp%2Fsrc%2Fmain%2Fres%2Fvalues%2Fstrings.xml","contents_url":"https://api.github.com/repos/RobinJ1995/DistroHopper/contents/DistroHopper%2Fapp%2Fsrc%2Fmain%2Fres%2Fvalues%2Fstrings.xml?ref=91a7f2b421ce196a68e7fe5c8a460b83992f5fa5","patch":"@@ -83,4 +83,6 @@\n \\nNote: It\\'s a donation. I am not selling anything, and you are not buying anything. Donations are greatly appreciated, but you will not gain any additional features because of it. All features of this application are available free of charge.\n \n Applications\n+\n+ Sending crash report...\n "},{"sha":"5f2c133a4b3ae116e30616227f17a15b743620bf","filename":"README.md","status":"modified","additions":1,"deletions":1,"changes":2,"blob_url":"https://github.com/RobinJ1995/DistroHopper/blob/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/README.md","raw_url":"https://github.com/RobinJ1995/DistroHopper/raw/91a7f2b421ce196a68e7fe5c8a460b83992f5fa5/README.md","contents_url":"https://api.github.com/repos/RobinJ1995/DistroHopper/contents/README.md?ref=91a7f2b421ce196a68e7fe5c8a460b83992f5fa5","patch":"@@ -1,7 +1,7 @@\n DistroHopper\n ============\n \n-DistroHopper is a home screen replacement for Android that can resemble a number of different Linux desktops, including Ubuntu's Unity desktop, elementary OS's Pantheon desktop and the Gnome desktop.\n+DistroHopper is a home screen replacement for Android that can resemble a number of different Linux desktops, including Ubuntu's Unity desktop, elementary OS's Pantheon desktop, the Gnome desktop, and Linux Mint's Cinnamon desktop.\n \n ## Where can I get it?\n "}]}