mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-17 19:29:02 +00:00
Add Instabug
This commit is contained in:
parent
5beeb9c821
commit
d4a2cf3e3d
7 changed files with 40 additions and 5 deletions
|
|
@ -2,7 +2,7 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.habitrpg.android.habitica"
|
||||
android:versionCode="1978"
|
||||
android:versionCode="1979"
|
||||
android:versionName="1.5"
|
||||
android:screenOrientation="portrait"
|
||||
android:installLocation="auto" >
|
||||
|
|
@ -14,12 +14,13 @@
|
|||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="com.android.vending.BILLING" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
||||
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" tools:node="remove" />
|
||||
|
||||
<application
|
||||
android:name=".HabiticaApplication"
|
||||
android:allowBackup="true"
|
||||
|
|
|
|||
|
|
@ -90,6 +90,7 @@ dependencies {
|
|||
implementation 'io.reactivex.rxjava2:rxjava:2.1.16'
|
||||
//Analytics
|
||||
implementation 'com.amplitude:android-sdk:2.18.1'
|
||||
implementation 'com.instabug.library:instabug:8.0.3'
|
||||
// Fresco Image Management Library
|
||||
implementation('com.facebook.fresco:fresco:1.9.0') {
|
||||
exclude module: 'bolts-android'
|
||||
|
|
|
|||
|
|
@ -28,6 +28,13 @@ import com.habitrpg.android.habitica.proxy.CrashlyticsProxy
|
|||
import com.habitrpg.android.habitica.ui.activities.IntroActivity
|
||||
import com.habitrpg.android.habitica.ui.activities.LoginActivity
|
||||
import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
|
||||
import com.instabug.bug.BugReporting
|
||||
import com.instabug.bug.PromptOption
|
||||
import com.instabug.library.Instabug
|
||||
import com.instabug.library.invocation.InstabugInvocationEvent
|
||||
import com.instabug.library.model.NetworkLog
|
||||
import com.instabug.library.ui.onboarding.WelcomeMessage
|
||||
import com.instabug.library.visualusersteps.State
|
||||
import com.squareup.leakcanary.LeakCanary
|
||||
import com.squareup.leakcanary.RefWatcher
|
||||
import io.reactivex.functions.Consumer
|
||||
|
|
@ -79,6 +86,7 @@ abstract class HabiticaBaseApplication : Application() {
|
|||
setupDagger()
|
||||
refWatcher = LeakCanary.install(this)
|
||||
setupFacebookSdk()
|
||||
setupInstabug()
|
||||
createBillingAndCheckout()
|
||||
HabiticaIconsHelper.init(this)
|
||||
|
||||
|
|
@ -103,6 +111,16 @@ abstract class HabiticaBaseApplication : Application() {
|
|||
checkIfNewVersion()
|
||||
}
|
||||
|
||||
private fun setupInstabug() {
|
||||
Instabug.Builder(this, getString(R.string.instabug_key))
|
||||
.setInvocationEvents(InstabugInvocationEvent.SHAKE)
|
||||
.setReproStepsState(State.ENABLED_WITH_NO_SCREENSHOTS)
|
||||
.build()
|
||||
Instabug.setWelcomeMessageState(WelcomeMessage.State.DISABLED)
|
||||
Instabug.setUserAttribute("", lazyApiHelper.hostConfig.user)
|
||||
BugReporting.setPromptOptionsEnabled(PromptOption.BUG, PromptOption.FEEDBACK)
|
||||
}
|
||||
|
||||
protected open fun setupRealm() {
|
||||
Realm.init(this)
|
||||
val builder = RealmConfiguration.Builder()
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.habitrpg.android.habitica.data
|
||||
|
||||
import com.habitrpg.android.habitica.api.HostConfig
|
||||
import com.habitrpg.android.habitica.models.*
|
||||
import com.habitrpg.android.habitica.models.auth.UserAuthResponse
|
||||
import com.habitrpg.android.habitica.models.inventory.Equipment
|
||||
|
|
@ -24,6 +25,8 @@ import retrofit2.HttpException
|
|||
|
||||
interface ApiClient {
|
||||
|
||||
val hostConfig: HostConfig
|
||||
|
||||
val status: Flowable<Status>
|
||||
|
||||
val content: Flowable<ContentResult>
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ import javax.net.ssl.SSLException
|
|||
|
||||
class ApiClientImpl//private OnHabitsAPIResult mResultListener;
|
||||
//private HostConfig mConfig;
|
||||
(private val gsonConverter: GsonConverterFactory, private val hostConfig: HostConfig, private val crashlyticsProxy: CrashlyticsProxy, private val popupNotificationsManager: PopupNotificationsManager, private val context: Context) : Consumer<Throwable>, ApiClient {
|
||||
(private val gsonConverter: GsonConverterFactory, override val hostConfig: HostConfig, private val crashlyticsProxy: CrashlyticsProxy, private val popupNotificationsManager: PopupNotificationsManager, private val context: Context) : Consumer<Throwable>, ApiClient {
|
||||
private val retrofitAdapter: Retrofit
|
||||
|
||||
// I think we don't need the ApiClientImpl anymore we could just use ApiService
|
||||
|
|
|
|||
|
|
@ -15,6 +15,10 @@ import com.habitrpg.android.habitica.events.ShowConnectionProblemEvent
|
|||
import io.reactivex.disposables.CompositeDisposable
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import com.instabug.library.InstabugTrackingDelegate
|
||||
import android.view.MotionEvent
|
||||
|
||||
|
||||
|
||||
abstract class BaseActivity : AppCompatActivity() {
|
||||
|
||||
|
|
@ -41,6 +45,11 @@ abstract class BaseActivity : AppCompatActivity() {
|
|||
return alwaysFinishActivitiesInt == 1
|
||||
}
|
||||
|
||||
override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
|
||||
InstabugTrackingDelegate.notifyActivityGotTouchEvent(ev, this)
|
||||
return super.dispatchTouchEvent(ev)
|
||||
}
|
||||
|
||||
override fun isDestroyed(): Boolean {
|
||||
return destroyed
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ import android.view.LayoutInflater
|
|||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import com.habitrpg.android.habitica.R
|
||||
import com.instabug.bug.BugReporting
|
||||
import com.instabug.bug.invocation.InvocationMode
|
||||
import com.instabug.bug.invocation.InvocationOption
|
||||
import kotlinx.android.synthetic.main.fragment_about.*
|
||||
|
||||
class AboutFragment : Fragment() {
|
||||
|
|
@ -55,8 +58,8 @@ class AboutFragment : Fragment() {
|
|||
sourceCodeLink.setOnClickListener { openBrowserLink(androidSourceCodeLink) }
|
||||
twitter.setOnClickListener { openBrowserLink(twitterLink) }
|
||||
sourceCodeButton.setOnClickListener { openBrowserLink(androidSourceCodeLink) }
|
||||
reportBug.setOnClickListener { sendEmail("[Android] Bugreport") }
|
||||
sendFeedback.setOnClickListener { sendEmail("[Android] Feedback") }
|
||||
reportBug.setOnClickListener { BugReporting.invoke(InvocationMode.NEW_BUG, InvocationOption.COMMENT_FIELD_REQUIRED) }
|
||||
sendFeedback.setOnClickListener { BugReporting.invoke(InvocationMode.NEW_FEEDBACK, InvocationOption.COMMENT_FIELD_REQUIRED)}
|
||||
googlePlayStoreButton.setOnClickListener { openGooglePlay() }
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue