package org.petabytes.awesomeblogs;
import android.text.TextUtils;
import com.annimon.stream.Optional;
import com.f2prateek.rx.preferences.Preference;
import com.facebook.stetho.Stetho;
import com.google.firebase.iid.FirebaseInstanceId;
import com.uphyca.stetho_realm.RealmInspectorModulesProvider;
import org.petabytes.api.Api;
import org.petabytes.awesomeblogs.util.Devices;
import org.petabytes.awesomeblogs.util.Preferences;
import org.petabytes.awesomeblogs.util.Strings;
import org.petabytes.coordinator.ActivityLayoutBinder;
import timber.log.Timber;
public class DebugAwesomeBlogsApp extends AwesomeBlogsApp {
@Override
public void onCreate() {
super.onCreate();
Timber.plant(new Timber.DebugTree());
Stetho.initialize(
Stetho.newInitializerBuilder(this)
.enableDumpapp(Stetho.defaultDumperPluginsProvider(this))
.enableWebKitInspector(RealmInspectorModulesProvider.builder(this).build())
.build());
}
@Override
protected ActivityLayoutBinder createActivityLayoutBinder() {
return new DebugActivityLayoutBinder();
}
@Override
protected Api createApi() {
return new Api(this,
() -> "awesome-blogs-android/" + BuildConfig.VERSION_NAME,
() -> {
Preference<String> preference = Preferences.deviceId();
String deviceId = preference.get();
if (TextUtils.isEmpty(deviceId)) {
deviceId = Devices.getId(this);
preference.set(deviceId);
}
return deviceId;
},
() -> {
Preference<String> preference = Preferences.fcmToken();
String fcmToken = preference.get();
if (TextUtils.isEmpty(fcmToken)) {
fcmToken = Optional.ofNullable(FirebaseInstanceId.getInstance().getToken()).orElse(Strings.EMPTY);
preference.set(fcmToken);
}
return fcmToken;
},
() -> Preferences.accessToken().get(),
true);
}
}