-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #6 from techery/feature/implement-trackers
Implement Adobe and Apptentive trackers for Android
- Loading branch information
Showing
73 changed files
with
971 additions
and
309 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
|
||
apply plugin: 'com.android.library' | ||
apply from: rootProject.file('gradle/plugins/maven-simple.gradle') | ||
|
||
android { | ||
|
||
compileSdkVersion 26 | ||
buildToolsVersion "26.0.2" | ||
|
||
defaultConfig { | ||
versionCode 1 | ||
versionName "1.0" | ||
minSdkVersion 18 | ||
targetSdkVersion 22 | ||
} | ||
|
||
compileOptions { | ||
sourceCompatibility JavaVersion.VERSION_1_6 | ||
targetCompatibility JavaVersion.VERSION_1_6 | ||
} | ||
} | ||
|
||
repositories { | ||
jcenter() | ||
google() | ||
} | ||
|
||
dependencies { | ||
compile project(':api') | ||
compile 'com.adobe.mobile:adobeMobileLibrary:4.13.7' | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||
package="io.techery.analytics.tracker.adobe" | ||
/> |
65 changes: 65 additions & 0 deletions
65
android-adobe-tracker/src/main/java/io/techery/analytics/tracker/AdobeTracker.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
package io.techery.analytics.tracker; | ||
|
||
import android.app.Activity; | ||
import android.app.Application; | ||
import android.os.Bundle; | ||
import com.adobe.mobile.Analytics; | ||
import com.adobe.mobile.Config; | ||
import io.techery.janet.analytics.Tracker; | ||
|
||
import java.util.Map; | ||
|
||
public class AdobeTracker implements Tracker, Application.ActivityLifecycleCallbacks { | ||
|
||
public static final String KEY = "JANET_ADOBE_TRACKER"; | ||
|
||
protected boolean appContextSet = false; | ||
|
||
public AdobeTracker(Application application) { | ||
application.registerActivityLifecycleCallbacks(this); | ||
} | ||
|
||
@Override | ||
public String id() { | ||
return KEY; | ||
} | ||
|
||
@Override | ||
public void trackEvent(String actionKey, Map<String, Object> data) { | ||
Analytics.trackAction(actionKey, data); | ||
} | ||
|
||
@Override | ||
public void onActivityCreated(Activity activity, Bundle bundle) { | ||
if (!appContextSet) { | ||
appContextSet = true; | ||
Config.setContext(activity.getApplicationContext()); | ||
} | ||
} | ||
|
||
@Override | ||
public void onActivityStarted(Activity activity) { | ||
} | ||
|
||
@Override | ||
public void onActivityResumed(Activity activity) { | ||
Config.collectLifecycleData(activity); | ||
} | ||
|
||
@Override | ||
public void onActivityPaused(Activity activity) { | ||
Config.pauseCollectingLifecycleData(); | ||
} | ||
|
||
@Override | ||
public void onActivityStopped(Activity activity) { | ||
} | ||
|
||
@Override | ||
public void onActivitySaveInstanceState(Activity activity, Bundle bundle) { | ||
} | ||
|
||
@Override | ||
public void onActivityDestroyed(Activity activity) { | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
|
||
apply plugin: 'com.android.library' | ||
apply from: rootProject.file('gradle/plugins/maven-simple.gradle') | ||
|
||
android { | ||
|
||
compileSdkVersion 26 | ||
buildToolsVersion "26.0.2" | ||
|
||
defaultConfig { | ||
versionCode 1 | ||
versionName "1.0" | ||
minSdkVersion 18 | ||
targetSdkVersion 22 | ||
} | ||
|
||
compileOptions { | ||
sourceCompatibility JavaVersion.VERSION_1_6 | ||
targetCompatibility JavaVersion.VERSION_1_6 | ||
} | ||
} | ||
|
||
repositories { | ||
jcenter() | ||
google() | ||
} | ||
|
||
dependencies { | ||
compile project(':api') | ||
compile 'com.apptentive:apptentive-android:5.0.2' | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||
package="io.techery.analytics.tracker.apptentive" | ||
/> |
28 changes: 28 additions & 0 deletions
28
android-apptentive-tracker/src/main/java/io/techery/analytics/tracker/ApptentiveTracker.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
package io.techery.analytics.tracker; | ||
|
||
import android.content.Context; | ||
import com.apptentive.android.sdk.Apptentive; | ||
import io.techery.janet.analytics.Tracker; | ||
|
||
import java.util.Map; | ||
|
||
public class ApptentiveTracker implements Tracker { | ||
|
||
public static final String KEY = "JANET_APPTENTIVE_TRACKER"; | ||
|
||
protected final Context context; | ||
|
||
public ApptentiveTracker(Context context) { | ||
this.context = context; | ||
} | ||
|
||
@Override | ||
public String id() { | ||
return KEY; | ||
} | ||
|
||
@Override | ||
public void trackEvent(String actionKey, Map<String, Object> data) { | ||
Apptentive.engage(context, actionKey, data); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
|
||
apply plugin: 'com.android.application' | ||
|
||
android { | ||
compileSdkVersion 26 | ||
buildToolsVersion "26.0.2" | ||
|
||
defaultConfig { | ||
applicationId "io.techery.analytics.sample.android" | ||
versionCode 1 | ||
versionName "1.0" | ||
minSdkVersion 18 | ||
targetSdkVersion 22 | ||
} | ||
|
||
compileOptions { | ||
sourceCompatibility JavaVersion.VERSION_1_7 | ||
targetCompatibility JavaVersion.VERSION_1_7 | ||
} | ||
} | ||
|
||
repositories { | ||
jcenter() | ||
google() | ||
maven { url "https://jitpack.io" } | ||
} | ||
|
||
dependencies { | ||
implementation project(':api') | ||
implementation project(':android-apptentive-tracker') | ||
implementation project(':android-adobe-tracker') | ||
implementation project(':sample-common') | ||
|
||
implementation project(':service') | ||
annotationProcessor project(':service-compiler') | ||
|
||
implementation 'com.google.dagger:dagger:2.14.1' | ||
annotationProcessor 'com.google.dagger:dagger-compiler:2.14.1' | ||
|
||
implementation 'com.github.techery:janet:1.0.7' | ||
// it is better to depend explicitly upon latest version | ||
|
||
implementation 'com.jakewharton:butterknife:8.8.1' | ||
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||
package="io.techery.analytics.sample.android"> | ||
|
||
<uses-permission android:name="android.permission.INTERNET" /> | ||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | ||
|
||
<application | ||
android:name="io.techery.analytics.sample.android.App" | ||
android:icon="@mipmap/ic_launcher" | ||
android:label="@string/app_name" | ||
android:roundIcon="@mipmap/ic_launcher_round" | ||
android:theme="@style/AppTheme"> | ||
|
||
<activity android:name="io.techery.analytics.sample.android.MainActivity"> | ||
<intent-filter> | ||
<action android:name="android.intent.action.MAIN" /> | ||
<category android:name="android.intent.category.LAUNCHER" /> | ||
</intent-filter> | ||
</activity> | ||
</application> | ||
</manifest> |
24 changes: 24 additions & 0 deletions
24
android-sample/src/main/java/io/techery/analytics/sample/android/App.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package io.techery.analytics.sample.android; | ||
|
||
import android.app.Application; | ||
import io.techery.analytics.sample.android.di.DaggerDiComponent; | ||
import io.techery.analytics.sample.android.di.DiComponent; | ||
import io.techery.analytics.sample.android.di.DiModule; | ||
|
||
public class App extends Application { | ||
|
||
private DiComponent diComponent; | ||
|
||
@Override | ||
public void onCreate() { | ||
super.onCreate(); | ||
|
||
diComponent = DaggerDiComponent.builder() | ||
.diModule(new DiModule(this)) | ||
.build(); | ||
} | ||
|
||
public DiComponent diComponent() { | ||
return diComponent; | ||
} | ||
} |
74 changes: 74 additions & 0 deletions
74
android-sample/src/main/java/io/techery/analytics/sample/android/MainActivity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
package io.techery.analytics.sample.android; | ||
|
||
import android.app.Activity; | ||
import android.os.Bundle; | ||
import android.widget.EditText; | ||
import android.widget.RadioGroup; | ||
import butterknife.BindView; | ||
import butterknife.ButterKnife; | ||
import butterknife.OnClick; | ||
import io.techery.analytics.sample.android.action.AdobePetSellEvent; | ||
import io.techery.analytics.sample.android.action.ApptentivePetSellEvent; | ||
import io.techery.analytics.sample_common.entity.PetEntity; | ||
import io.techery.analytics.sample_common.entity.PetType; | ||
import io.techery.analytics.sample_common.janet.AnalyticsInteractor; | ||
|
||
import javax.inject.Inject; | ||
import java.util.Calendar; | ||
|
||
public class MainActivity extends Activity { | ||
|
||
@Inject | ||
AnalyticsInteractor analyticsInteractor; | ||
|
||
@BindView(R.id.pet_name) | ||
EditText petNameView; | ||
|
||
@BindView(R.id.pet_type_radio_group) | ||
RadioGroup petTypeView; | ||
|
||
@Override | ||
protected void onCreate(Bundle savedInstanceState) { | ||
super.onCreate(savedInstanceState); | ||
setContentView(R.layout.activity_main); | ||
ButterKnife.bind(this); | ||
|
||
((App) getApplication()).diComponent().inject(this); | ||
} | ||
|
||
@OnClick(R.id.button) | ||
void buttonClicked() { | ||
final String petName = petNameView.getText().toString(); | ||
PetType petType; | ||
switch (petTypeView.getCheckedRadioButtonId()) { | ||
case R.id.radio_type_cat: petType = PetType.CAT; break; | ||
case R.id.radio_type_dog: petType = PetType.CAT; break; | ||
default: petType = PetType.UNKNOWN; | ||
} | ||
Calendar petBirthDate = Calendar.getInstance(); | ||
petBirthDate.set(Calendar.YEAR, 2017); | ||
|
||
PetEntity pet = new PetEntity(petType, petName, petBirthDate); | ||
analyticsInteractor.analyticsActionPipe().send(new AdobePetSellEvent(pet)); | ||
// analyticsInteractor.analyticsActionPipe() | ||
// .createObservable(new AdobePetSellEvent(pet)) | ||
// .subscribe(new Subscriber<ActionState<BaseAnalyticsAction>>() { | ||
// @Override | ||
// public void onCompleted() { | ||
// // do nothing | ||
// } | ||
// | ||
// @Override | ||
// public void onError(Throwable e) { | ||
// // this is highly expected because none of analytic SDK are properly set | ||
// // do nothing | ||
// } | ||
// | ||
// @Override | ||
// public void onNext(ActionState<BaseAnalyticsAction> baseAnalyticsActionActionState) { | ||
// // do nothing | ||
// } | ||
// }); | ||
analyticsInteractor.analyticsActionPipe().send(new ApptentivePetSellEvent(pet)); | ||
} | ||
} |
13 changes: 13 additions & 0 deletions
13
...id-sample/src/main/java/io/techery/analytics/sample/android/action/AdobePetSellEvent.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
package io.techery.analytics.sample.android.action; | ||
|
||
import io.techery.analytics.sample_common.entity.PetEntity; | ||
import io.techery.analytics.tracker.AdobeTracker; | ||
import io.techery.janet.analytics.annotation.AnalyticsEvent; | ||
|
||
@AnalyticsEvent(actionKey = "{$pet_type}_sold", trackerIds = AdobeTracker.KEY) | ||
public class AdobePetSellEvent extends BasePetSellEvent { | ||
|
||
public AdobePetSellEvent(PetEntity pet) { | ||
super(pet); | ||
} | ||
} |
Oops, something went wrong.