diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
deleted file mode 100644
index 8b7f4afdab..0000000000
--- a/.idea/kotlinc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 514c99b327..703e5d4b89 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,44 +1,9 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
diff --git a/app/build.gradle b/app/build.gradle
index f91af6af43..ffaf1ec3b4 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,7 +1,7 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
-
+apply plugin: 'kotlin-kapt'
static def generateVersionName() {
def gitCommitsCount = "git rev-list HEAD --count".execute().text.trim()
@@ -44,29 +44,27 @@ android {
}
dependencies {
- def lifecycle_version = "2.0.0"
- def spongycastle_version = "1.56.0.0"
-
implementation project(':tangemcard-common')
implementation project(':tangemcard-android')
implementation project(':tangemserver-android')
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
- implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
+ implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
implementation 'androidx.biometric:biometric:1.0.0-alpha03'
implementation 'com.google.android.material:material:1.1.0-alpha02'
- implementation 'com.google.dagger:dagger:2.16'
+ implementation 'com.google.dagger:dagger:2.21'
+ kapt 'com.google.dagger:dagger-compiler:2.21'
+ annotationProcessor 'com.google.dagger:dagger-compiler:2.21'
implementation 'com.google.zxing:core:3.3.3'
implementation 'com.google.code.gson:gson:2.8.5'
- implementation "com.madgag.spongycastle:core:$spongycastle_version"
- implementation "com.madgag.spongycastle:prov:$spongycastle_version"
+ implementation 'com.madgag.spongycastle:core:1.56.0.0'
+ implementation 'com.madgag.spongycastle:prov:1.56.0.0'
implementation 'com.scottyab:rootbeer-lib:0.0.7'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.11.0'
implementation 'com.skyfishjy.ripplebackground:library:1.0.1'
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
- annotationProcessor 'com.google.dagger:dagger-compiler:2.16'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'org.bitcoinj:bitcoinj-parent:0.14.7'
implementation 'org.bitcoinj:bitcoinj-core:0.14.7'
diff --git a/app/src/main/java/com/tangem/App.java b/app/src/main/java/com/tangem/App.java
deleted file mode 100644
index 14b3775f08..0000000000
--- a/app/src/main/java/com/tangem/App.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package com.tangem;
-
-import android.app.Application;
-import androidx.appcompat.app.AppCompatDelegate;
-
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import com.tangem.tangemserver.android.data.LocalStorage;
-import com.tangem.di.DaggerNavigatorComponent;
-import com.tangem.di.DaggerNetworkComponent;
-import com.tangem.di.NavigatorComponent;
-import com.tangem.di.NetworkComponent;
-import com.tangem.tangemcard.data.Issuer;
-import com.tangem.tangemcard.android.data.Firmwares;
-import com.tangem.tangemcard.android.data.PINStorage;
-import com.tangem.tangemcard.data.external.FirmwaresDigestsProvider;
-import com.tangem.tangemcard.data.external.PINsProvider;
-
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.lang.reflect.Type;
-import java.nio.charset.StandardCharsets;
-import java.util.List;
-
-public class App extends Application {
-
- /**
- * A singleton instance of the application class for easy access in other places
- */
- private static App sInstance;
-
- public App() {
- super();
- }
-
- static {
- AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
- }
-
- private static NetworkComponent networkComponent;
- private static NavigatorComponent navigatorComponent;
-
- public static NavigatorComponent getNavigatorComponent() {
- return navigatorComponent;
- }
-
- public static LocalStorage localStorage;
- public static PINsProvider pinStorage;
- public static FirmwaresDigestsProvider firmwaresStorage;
-
- @Override
- public void onCreate() {
- super.onCreate();
- // initialize the singleton
- sInstance = this;
-
- networkComponent = DaggerNetworkComponent.create();
- navigatorComponent = buildNavigatorComponent();
-
- // common init
- if (PINStorage.needInit())
- PINStorage.init(getApplicationContext());
-
- initIssuers();
-
- firmwaresStorage = new Firmwares(getApplicationContext());
-
- localStorage = new LocalStorage(getApplicationContext());
-
- pinStorage = new PINStorage();
- }
-
- /**
- * @return singleton instance
- */
- public static synchronized App getInstance() {
- return sInstance;
- }
-
- public static NetworkComponent getNetworkComponent() {
- return networkComponent;
- }
-
- protected NavigatorComponent buildNavigatorComponent() {
- return DaggerNavigatorComponent.builder()
- .build();
- }
-
-
- public void initIssuers() {
- try {
- try (InputStream is = getApplicationContext().getAssets().open("issuers.json")) {
- try (InputStreamReader reader = new InputStreamReader(is, StandardCharsets.UTF_8)) {
- Type listType = new TypeToken>() {
- }.getType();
-
-
- Issuer.fillIssuers(new Gson().fromJson(reader, listType));
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/App.kt b/app/src/main/java/com/tangem/App.kt
new file mode 100644
index 0000000000..d226c4afb7
--- /dev/null
+++ b/app/src/main/java/com/tangem/App.kt
@@ -0,0 +1,81 @@
+package com.tangem
+
+import android.app.Application
+import androidx.appcompat.app.AppCompatDelegate
+import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
+import com.tangem.di.DaggerNavigatorComponent
+import com.tangem.di.DaggerNetworkComponent
+import com.tangem.di.NavigatorComponent
+import com.tangem.di.NetworkComponent
+import com.tangem.tangemcard.android.data.Firmwares
+import com.tangem.tangemcard.android.data.PINStorage
+import com.tangem.tangemcard.data.Issuer
+import com.tangem.tangemcard.data.external.FirmwaresDigestsProvider
+import com.tangem.tangemcard.data.external.PINsProvider
+import com.tangem.tangemserver.android.data.LocalStorage
+import java.io.InputStreamReader
+import java.nio.charset.StandardCharsets
+
+class App : Application() {
+ companion object {
+ @get:Synchronized
+ var instance: App? = null
+ private set
+
+ init {
+ AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)
+ }
+
+ var networkComponent: NetworkComponent? = null
+ private set
+ var navigatorComponent: NavigatorComponent? = null
+ private set
+
+ lateinit var firmwaresStorage: FirmwaresDigestsProvider
+ lateinit var localStorage: LocalStorage
+ lateinit var pinStorage: PINsProvider
+ }
+
+ override fun onCreate() {
+ super.onCreate()
+ // initialize the singleton
+ instance = this
+
+ networkComponent = DaggerNetworkComponent.create()
+ navigatorComponent = buildNavigatorComponent()
+
+ // common init
+ if (PINStorage.needInit())
+ PINStorage.init(applicationContext)
+
+ initIssuers()
+
+ firmwaresStorage = Firmwares(applicationContext)
+ localStorage = LocalStorage(applicationContext)
+ pinStorage = PINStorage()
+ }
+
+ private fun buildNavigatorComponent(): NavigatorComponent {
+ return DaggerNavigatorComponent.builder()
+ .build()
+ }
+
+ private fun initIssuers() {
+ try {
+ applicationContext.assets.open("issuers.json").use { `is` ->
+ InputStreamReader(`is`, StandardCharsets.UTF_8).use { reader ->
+ val listType = object : TypeToken>() {
+
+ }.type
+
+ Issuer.fillIssuers(Gson().fromJson(reader, listType))
+ }
+ }
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/data/network/ServerApiCommon.java b/app/src/main/java/com/tangem/data/network/ServerApiCommon.java
index df196fc762..0a7affb756 100644
--- a/app/src/main/java/com/tangem/data/network/ServerApiCommon.java
+++ b/app/src/main/java/com/tangem/data/network/ServerApiCommon.java
@@ -36,7 +36,7 @@ public class ServerApiCommon {
}
public void requestBtcEstimatedFee(int blockCount) {
- EstimatefeeApi estimatefeeApi = App.getNetworkComponent().getRetrofitEstimatefee().create(EstimatefeeApi.class);
+ EstimatefeeApi estimatefeeApi = App.Companion.getNetworkComponent().getRetrofitEstimatefee().create(EstimatefeeApi.class);
Call call;
switch (blockCount) {
@@ -91,7 +91,7 @@ public class ServerApiCommon {
@SuppressLint("CheckResult")
public void requestRateInfo(String cryptoId) {
- CoinmarketApi coinmarketApi = App.getNetworkComponent().getRetrofitCoinmarketcap().create(CoinmarketApi.class);
+ CoinmarketApi coinmarketApi = App.Companion.getNetworkComponent().getRetrofitCoinmarketcap().create(CoinmarketApi.class);
coinmarketApi.getRateInfoList()
.subscribeOn(Schedulers.io())
@@ -126,7 +126,7 @@ public class ServerApiCommon {
}
public void requestLastVersion() {
- UpdateVersionApi updateVersionApi = App.getNetworkComponent().getRetrofitGithubusercontent().create(UpdateVersionApi.class);
+ UpdateVersionApi updateVersionApi = App.Companion.getNetworkComponent().getRetrofitGitHubUserContent().create(UpdateVersionApi.class);
Call call = updateVersionApi.getLastVersion();
call.enqueue(new Callback() {
diff --git a/app/src/main/java/com/tangem/data/network/ServerApiElectrum.java b/app/src/main/java/com/tangem/data/network/ServerApiElectrum.java
index a3995a4c5c..a087030180 100644
--- a/app/src/main/java/com/tangem/data/network/ServerApiElectrum.java
+++ b/app/src/main/java/com/tangem/data/network/ServerApiElectrum.java
@@ -230,7 +230,7 @@ public class ServerApiElectrum {
private void doElectrumRequestTcp(ElectrumRequest electrumRequest, String host, int port) {
try {
- Socket socket = App.getNetworkComponent().getSocket();
+ Socket socket = App.Companion.getNetworkComponent().getSocket();
socket.setSoTimeout(3000);
Log.i(TAG, "Start process "+electrumRequest.getMethod()+" @ "+host + ":" + port);
socket.connect(new InetSocketAddress(InetAddress.getByName(host), port));
@@ -252,18 +252,18 @@ public class ServerApiElectrum {
if( (electrumRequest.getError()!=null && electrumRequest.getError().startsWith(ERROR_STARTS_WITH_CODE_32601)) )
{
// method unknown error???
- electrumRequest.setError(App.getInstance().getString(R.string.cannot_obtain_data_from_blockchain));
+ electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain));
electrumRequest.answerData=null;
}
} else {
- electrumRequest.setError(App.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_no_answer));
+ electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_no_answer));
Log.i(TAG, ">> ");
}
} catch (ConnectException e) {
//e.printStackTrace();
//responseListener.onFail(e.getMessage());
- electrumRequest.setError(App.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_no_connection));
+ electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_no_connection));
Log.e(TAG, "doElectrumRequestTcp " + electrumRequest.getMethod() + " ConnectException " + e.getMessage());
} finally {
Log.i(TAG, "doElectrumRequestTcp " + electrumRequest.getMethod() + " socket.close");
@@ -274,13 +274,13 @@ public class ServerApiElectrum {
{
e.printStackTrace();
Log.e(TAG,"Can't close socket");
- electrumRequest.setError(App.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_communication_error));
+ electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_communication_error));
}
}
} catch (IOException e) {
//e.printStackTrace();
//responseListener.onFail(e.getMessage());
- electrumRequest.setError(App.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_communication_error));
+ electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_communication_error));
Log.e(TAG, "doElectrumRequestTcp " + electrumRequest.getMethod() + " IOException " + e.getMessage());
}
}
@@ -341,17 +341,17 @@ public class ServerApiElectrum {
if( (electrumRequest.getError()!=null && electrumRequest.getError().startsWith(ERROR_STARTS_WITH_CODE_32601)) )
{
// method unknown error???
- electrumRequest.setError(App.getInstance().getString(R.string.cannot_obtain_data_from_blockchain));
+ electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain));
electrumRequest.answerData=null;
}
} else {
- electrumRequest.setError(App.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_no_answer));
+ electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_no_answer));
Log.i(TAG, ">> ");
}
} catch (ConnectException e) {
e.printStackTrace();
- electrumRequest.setError(App.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_no_connection));
+ electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_no_connection));
Log.e(TAG, "doElectrumRequestSsl " + electrumRequest.getMethod() + " ConnectException " + e.getMessage());
} finally {
Log.i(TAG, "doElectrumRequestSsl " + electrumRequest.getMethod() + " socket.close");
@@ -360,7 +360,7 @@ public class ServerApiElectrum {
}
catch (Exception e)
{
- electrumRequest.setError(App.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_communication_error));
+ electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_communication_error));
e.printStackTrace();
Log.e(TAG, "Can't close ssl socket");
}
@@ -368,11 +368,11 @@ public class ServerApiElectrum {
} catch (IOException e) {
e.printStackTrace();
- electrumRequest.setError(App.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_communication_error));
+ electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain_communication_error));
Log.e(TAG, "doElectrumRequestSsl " + electrumRequest.getMethod() + " IOException " + e.getMessage());
}
} catch (NoSuchAlgorithmException | KeyManagementException e) {
- electrumRequest.setError(App.getInstance().getString(R.string.cannot_obtain_data_from_blockchain));
+ electrumRequest.setError(App.Companion.getInstance().getString(R.string.cannot_obtain_data_from_blockchain));
Log.e(TAG, e.getMessage());
}
}
diff --git a/app/src/main/java/com/tangem/data/network/ServerApiInfura.java b/app/src/main/java/com/tangem/data/network/ServerApiInfura.java
index 82b4b3d8e8..a477364f12 100644
--- a/app/src/main/java/com/tangem/data/network/ServerApiInfura.java
+++ b/app/src/main/java/com/tangem/data/network/ServerApiInfura.java
@@ -52,7 +52,7 @@ public class ServerApiInfura {
public void requestData(String method, int id, String wallet, String contract, String tx) {
requestsCount++;
- InfuraApi infuraApi = App.getNetworkComponent().getRetrofitInfura().create(InfuraApi.class);
+ InfuraApi infuraApi = App.Companion.getNetworkComponent().getRetrofitInfura().create(InfuraApi.class);
InfuraBody infuraBody;
switch (method) {
diff --git a/app/src/main/java/com/tangem/data/network/ServerApiRootstock.java b/app/src/main/java/com/tangem/data/network/ServerApiRootstock.java
index 2629c31cc1..0bcf5b7b4f 100644
--- a/app/src/main/java/com/tangem/data/network/ServerApiRootstock.java
+++ b/app/src/main/java/com/tangem/data/network/ServerApiRootstock.java
@@ -52,7 +52,7 @@ public class ServerApiRootstock {
public void requestData(String method, int id, String wallet, String contract, String tx) {
requestsCount++;
- RootstockApi rootstockApi = App.getNetworkComponent().getRetrofitRootstock().create(RootstockApi.class);
+ RootstockApi rootstockApi = App.Companion.getNetworkComponent().getRetrofitRootstock().create(RootstockApi.class);
InfuraBody infuraBody;
switch (method) {
diff --git a/app/src/main/java/com/tangem/di/NavigatorComponent.java b/app/src/main/java/com/tangem/di/NavigatorComponent.java
deleted file mode 100644
index ceac2a440a..0000000000
--- a/app/src/main/java/com/tangem/di/NavigatorComponent.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.tangem.di;
-
-import com.tangem.presentation.activity.EmptyWalletActivity;
-import com.tangem.presentation.activity.LoadedWalletActivity;
-import com.tangem.presentation.activity.LogoActivity;
-import com.tangem.presentation.activity.MainActivity;
-import com.tangem.presentation.activity.PrepareCryptonitOtherApiWithdrawalActivity;
-import com.tangem.presentation.activity.PrepareKrakenWithdrawalActivity;
-import com.tangem.presentation.activity.PrepareTransactionActivity;
-import com.tangem.presentation.activity.PurgeActivity;
-import com.tangem.presentation.activity.VerifyCardActivity;
-
-import javax.inject.Singleton;
-
-import dagger.Component;
-
-@Singleton
-@Component(modules = {NavigatorModule.class})
-public interface NavigatorComponent {
-
- void inject(LogoActivity activity);
-
- void inject(MainActivity activity);
-
- void inject(PurgeActivity activity);
-
- void inject(PrepareTransactionActivity activity);
-
- void inject(PrepareCryptonitOtherApiWithdrawalActivity activity);
-
- void inject(PrepareKrakenWithdrawalActivity activity);
-
- void inject(LoadedWalletActivity activity);
-
- void inject(VerifyCardActivity activity);
-
- void inject(EmptyWalletActivity activity);
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/di/NavigatorComponent.kt b/app/src/main/java/com/tangem/di/NavigatorComponent.kt
new file mode 100644
index 0000000000..d4eff92dfe
--- /dev/null
+++ b/app/src/main/java/com/tangem/di/NavigatorComponent.kt
@@ -0,0 +1,39 @@
+package com.tangem.di
+
+import com.tangem.presentation.activity.EmptyWalletActivity
+import com.tangem.presentation.activity.LoadedWalletActivity
+import com.tangem.presentation.activity.LogoActivity
+import com.tangem.presentation.activity.MainActivity
+import com.tangem.presentation.activity.PrepareCryptonitOtherApiWithdrawalActivity
+import com.tangem.presentation.activity.PrepareKrakenWithdrawalActivity
+import com.tangem.presentation.activity.PrepareTransactionActivity
+import com.tangem.presentation.activity.PurgeActivity
+import com.tangem.presentation.activity.VerifyCardActivity
+
+import javax.inject.Singleton
+
+import dagger.Component
+
+@Singleton
+@Component(modules = [NavigatorModule::class])
+interface NavigatorComponent {
+
+ fun inject(activity: LogoActivity)
+
+ fun inject(activity: MainActivity)
+
+ fun inject(activity: PurgeActivity)
+
+ fun inject(activity: PrepareTransactionActivity)
+
+ fun inject(activity: PrepareCryptonitOtherApiWithdrawalActivity)
+
+ fun inject(activity: PrepareKrakenWithdrawalActivity)
+
+ fun inject(activity: LoadedWalletActivity)
+
+ fun inject(activity: VerifyCardActivity)
+
+ fun inject(activity: EmptyWalletActivity)
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/di/NavigatorModule.java b/app/src/main/java/com/tangem/di/NavigatorModule.java
deleted file mode 100644
index 718fc07003..0000000000
--- a/app/src/main/java/com/tangem/di/NavigatorModule.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.tangem.di;
-
-import com.tangem.presentation.dialog.WaitSecurityDelayDialogNew;
-
-import javax.inject.Singleton;
-
-import dagger.Module;
-import dagger.Provides;
-
-@Module
-class NavigatorModule {
-
- @Singleton
- @Provides
- Navigator provideNavigator() {
- return new Navigator();
- }
-
- @Singleton
- @Provides
- WaitSecurityDelayDialogNew provideWaitSecurityDelayDialogNew() {
- return new WaitSecurityDelayDialogNew();
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/di/NavigatorModule.kt b/app/src/main/java/com/tangem/di/NavigatorModule.kt
new file mode 100644
index 0000000000..1eb397c3c6
--- /dev/null
+++ b/app/src/main/java/com/tangem/di/NavigatorModule.kt
@@ -0,0 +1,25 @@
+package com.tangem.di
+
+import com.tangem.presentation.dialog.WaitSecurityDelayDialogNew
+
+import javax.inject.Singleton
+
+import dagger.Module
+import dagger.Provides
+
+@Module
+internal class NavigatorModule {
+
+ @Singleton
+ @Provides
+ fun provideNavigator(): Navigator {
+ return Navigator()
+ }
+
+ @Singleton
+ @Provides
+ fun provideWaitSecurityDelayDialogNew(): WaitSecurityDelayDialogNew {
+ return WaitSecurityDelayDialogNew()
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/di/NetworkComponent.java b/app/src/main/java/com/tangem/di/NetworkComponent.java
deleted file mode 100644
index a58b5e7e1a..0000000000
--- a/app/src/main/java/com/tangem/di/NetworkComponent.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.tangem.di;
-
-import com.tangem.data.network.Server;
-
-import java.net.Socket;
-
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import dagger.Component;
-import retrofit2.Retrofit;
-
-@Singleton
-@Component(modules = {NetworkModule.class})
-public interface NetworkComponent {
-
- @Named(Server.ApiInfura.URL_INFURA)
- Retrofit getRetrofitInfura();
-
- @Named(Server.ApiEstimatefee.URL_ESTIMATEFEE)
- Retrofit getRetrofitEstimatefee();
-
- @Named(Server.ApiCoinmarket.URL_COINMARKET)
- Retrofit getRetrofitCoinmarketcap();
-
- @Named(Server.ApiUpdateVersion.URL_UPDATE_VERSION)
- Retrofit getRetrofitGithubusercontent();
-
- @Named(Server.ApiRootstock.URL_ROOTSTOCK)
- Retrofit getRetrofitRootstock();
-
- @Named("socket")
- Socket getSocket();
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/di/NetworkComponent.kt b/app/src/main/java/com/tangem/di/NetworkComponent.kt
new file mode 100644
index 0000000000..7621faf5a2
--- /dev/null
+++ b/app/src/main/java/com/tangem/di/NetworkComponent.kt
@@ -0,0 +1,35 @@
+package com.tangem.di
+
+import com.tangem.data.network.Server
+
+import java.net.Socket
+
+import javax.inject.Named
+import javax.inject.Singleton
+
+import dagger.Component
+import retrofit2.Retrofit
+
+@Singleton
+@Component(modules = [NetworkModule::class])
+interface NetworkComponent {
+
+ @get:Named(Server.ApiInfura.URL_INFURA)
+ val retrofitInfura: Retrofit
+
+ @get:Named(Server.ApiEstimatefee.URL_ESTIMATEFEE)
+ val retrofitEstimatefee: Retrofit
+
+ @get:Named(Server.ApiCoinmarket.URL_COINMARKET)
+ val retrofitCoinmarketcap: Retrofit
+
+ @get:Named(Server.ApiUpdateVersion.URL_UPDATE_VERSION)
+ val retrofitGitHubUserContent: Retrofit
+
+ @get:Named(Server.ApiRootstock.URL_ROOTSTOCK)
+ val retrofitRootstock: Retrofit
+
+ @get:Named("socket")
+ val socket: Socket
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/di/NetworkModule.java b/app/src/main/java/com/tangem/di/NetworkModule.java
deleted file mode 100644
index d540f79d73..0000000000
--- a/app/src/main/java/com/tangem/di/NetworkModule.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package com.tangem.di;
-
-import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
-import com.tangem.data.network.Server;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.SocketException;
-
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import dagger.Module;
-import dagger.Provides;
-import okhttp3.OkHttpClient;
-import okhttp3.logging.HttpLoggingInterceptor;
-import retrofit2.Retrofit;
-import retrofit2.converter.gson.GsonConverterFactory;
-
-@Module
-class NetworkModule {
-
- @Singleton
- @Provides
- @Named(Server.ApiInfura.URL_INFURA)
- Retrofit provideRetrofitInfura() {
- return new Retrofit.Builder()
- .baseUrl(Server.ApiInfura.URL_INFURA)
- .addConverterFactory(GsonConverterFactory.create())
- .build();
- }
-
- @Singleton
- @Provides
- @Named(Server.ApiRootstock.URL_ROOTSTOCK)
- Retrofit provideRetrofitRootstock() {
- return new Retrofit.Builder()
- .baseUrl(Server.ApiRootstock.URL_ROOTSTOCK)
- .addConverterFactory(GsonConverterFactory.create())
- .build();
- }
-
- @Singleton
- @Provides
- @Named(Server.ApiEstimatefee.URL_ESTIMATEFEE)
- Retrofit provideRetrofitEstimatefee() {
- return new Retrofit.Builder()
- .baseUrl(Server.ApiEstimatefee.URL_ESTIMATEFEE)
- .addConverterFactory(GsonConverterFactory.create())
- .build();
- }
-
- @Singleton
- @Provides
- @Named(Server.ApiUpdateVersion.URL_UPDATE_VERSION)
- Retrofit provideGithubusercontent() {
- return new Retrofit.Builder()
- .baseUrl(Server.ApiUpdateVersion.URL_UPDATE_VERSION)
- .addConverterFactory(GsonConverterFactory.create())
- .client(createOkHttpClient())
- .build();
- }
-
- @Singleton
- @Provides
- @Named(Server.ApiCoinmarket.URL_COINMARKET)
- Retrofit provideRetrofitCoinmarketcap() {
- return new Retrofit.Builder()
- .baseUrl(Server.ApiCoinmarket.URL_COINMARKET)
- .addConverterFactory(GsonConverterFactory.create())
- .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
- .build();
- }
-
- private OkHttpClient createOkHttpClient() {
- return new OkHttpClient.Builder().
- addInterceptor(createHttpLoggingInterceptor()).
- build();
- }
-
- private HttpLoggingInterceptor createHttpLoggingInterceptor() {
- HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
- logging.setLevel(HttpLoggingInterceptor.Level.BODY);
- return logging;
- }
-
- @Provides
- @Named("socket")
- Socket provideSocket() {
- Socket socket = new Socket();
- try {
- socket.setSoTimeout(2000);
- try {
- socket.bind(new InetSocketAddress(0));
- } catch (IOException e) {
- e.printStackTrace();
- }
- } catch (SocketException e) {
- e.printStackTrace();
- }
-
- return socket;
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/di/NetworkModule.kt b/app/src/main/java/com/tangem/di/NetworkModule.kt
new file mode 100644
index 0000000000..fb29acccbd
--- /dev/null
+++ b/app/src/main/java/com/tangem/di/NetworkModule.kt
@@ -0,0 +1,105 @@
+package com.tangem.di
+
+import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
+import com.tangem.data.network.Server
+
+import java.io.IOException
+import java.net.InetSocketAddress
+import java.net.Socket
+import java.net.SocketException
+
+import javax.inject.Named
+import javax.inject.Singleton
+
+import dagger.Module
+import dagger.Provides
+import okhttp3.OkHttpClient
+import okhttp3.logging.HttpLoggingInterceptor
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
+
+@Module
+internal class NetworkModule {
+
+ @Singleton
+ @Provides
+ @Named(Server.ApiInfura.URL_INFURA)
+ fun provideRetrofitInfura(): Retrofit {
+ return Retrofit.Builder()
+ .baseUrl(Server.ApiInfura.URL_INFURA)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build()
+ }
+
+ @Singleton
+ @Provides
+ @Named(Server.ApiRootstock.URL_ROOTSTOCK)
+ fun provideRetrofitRootstock(): Retrofit {
+ return Retrofit.Builder()
+ .baseUrl(Server.ApiRootstock.URL_ROOTSTOCK)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build()
+ }
+
+ @Singleton
+ @Provides
+ @Named(Server.ApiEstimatefee.URL_ESTIMATEFEE)
+ fun provideRetrofitEstimatefee(): Retrofit {
+ return Retrofit.Builder()
+ .baseUrl(Server.ApiEstimatefee.URL_ESTIMATEFEE)
+ .addConverterFactory(GsonConverterFactory.create())
+ .build()
+ }
+
+ @Singleton
+ @Provides
+ @Named(Server.ApiUpdateVersion.URL_UPDATE_VERSION)
+ fun provideGithubusercontent(): Retrofit {
+ return Retrofit.Builder()
+ .baseUrl(Server.ApiUpdateVersion.URL_UPDATE_VERSION)
+ .addConverterFactory(GsonConverterFactory.create())
+ .client(createOkHttpClient())
+ .build()
+ }
+
+ @Singleton
+ @Provides
+ @Named(Server.ApiCoinmarket.URL_COINMARKET)
+ fun provideRetrofitCoinmarketcap(): Retrofit {
+ return Retrofit.Builder()
+ .baseUrl(Server.ApiCoinmarket.URL_COINMARKET)
+ .addConverterFactory(GsonConverterFactory.create())
+ .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
+ .build()
+ }
+
+ private fun createOkHttpClient(): OkHttpClient {
+ return OkHttpClient.Builder().addInterceptor(createHttpLoggingInterceptor()).build()
+ }
+
+ private fun createHttpLoggingInterceptor(): HttpLoggingInterceptor {
+ val logging = HttpLoggingInterceptor()
+ logging.level = HttpLoggingInterceptor.Level.BODY
+ return logging
+ }
+
+ @Provides
+ @Named("socket")
+ fun provideSocket(): Socket {
+ val socket = Socket()
+ try {
+ socket.soTimeout = 2000
+ try {
+ socket.bind(InetSocketAddress(0))
+ } catch (e: IOException) {
+ e.printStackTrace()
+ }
+
+ } catch (e: SocketException) {
+ e.printStackTrace()
+ }
+
+ return socket
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/presentation/activity/EmptyWalletActivity.kt b/app/src/main/java/com/tangem/presentation/activity/EmptyWalletActivity.kt
index 0cd4d062ba..2a87fbdf71 100644
--- a/app/src/main/java/com/tangem/presentation/activity/EmptyWalletActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/EmptyWalletActivity.kt
@@ -62,7 +62,7 @@ class EmptyWalletActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, Card
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_empty_wallet)
- App.getNavigatorComponent().inject(this)
+ App.navigatorComponent?.inject(this)
nfcManager = NfcManager(this, this)
lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
diff --git a/app/src/main/java/com/tangem/presentation/activity/LoadedWalletActivity.kt b/app/src/main/java/com/tangem/presentation/activity/LoadedWalletActivity.kt
index 9231929c75..44fffccc9a 100644
--- a/app/src/main/java/com/tangem/presentation/activity/LoadedWalletActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/LoadedWalletActivity.kt
@@ -32,7 +32,7 @@ class LoadedWalletActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_loaded_wallet)
- App.getNavigatorComponent().inject(this)
+ App.navigatorComponent?.inject(this)
if (intent.extras!!.containsKey(NfcAdapter.EXTRA_TAG)) {
val tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG)
diff --git a/app/src/main/java/com/tangem/presentation/activity/LogoActivity.kt b/app/src/main/java/com/tangem/presentation/activity/LogoActivity.kt
index c7b2d40220..acb03e8626 100644
--- a/app/src/main/java/com/tangem/presentation/activity/LogoActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/LogoActivity.kt
@@ -31,7 +31,7 @@ class LogoActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_logo)
- App.getNavigatorComponent().inject(this)
+ App.navigatorComponent?.inject(this)
ivLogo.setOnClickListener { hide() }
}
diff --git a/app/src/main/java/com/tangem/presentation/activity/MainActivity.kt b/app/src/main/java/com/tangem/presentation/activity/MainActivity.kt
index 9be5713ee9..11ab269e93 100644
--- a/app/src/main/java/com/tangem/presentation/activity/MainActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/MainActivity.kt
@@ -82,7 +82,7 @@ class MainActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoco
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
- App.getNavigatorComponent().inject(this)
+ App.navigatorComponent?.inject(this)
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
diff --git a/app/src/main/java/com/tangem/presentation/activity/PrepareCryptonitOtherApiWithdrawalActivity.kt b/app/src/main/java/com/tangem/presentation/activity/PrepareCryptonitOtherApiWithdrawalActivity.kt
index 018fa6fa20..820a1715cf 100644
--- a/app/src/main/java/com/tangem/presentation/activity/PrepareCryptonitOtherApiWithdrawalActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/PrepareCryptonitOtherApiWithdrawalActivity.kt
@@ -42,7 +42,7 @@ class PrepareCryptonitOtherApiWithdrawalActivity : AppCompatActivity(), NfcAdapt
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_prepare_cryptonit_other_api_withdrawal)
- App.getNavigatorComponent().inject(this)
+ App.navigatorComponent?.inject(this)
nfcManager = NfcManager(this, this)
lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
diff --git a/app/src/main/java/com/tangem/presentation/activity/PrepareKrakenWithdrawalActivity.kt b/app/src/main/java/com/tangem/presentation/activity/PrepareKrakenWithdrawalActivity.kt
index 5eef701c62..73f365c799 100644
--- a/app/src/main/java/com/tangem/presentation/activity/PrepareKrakenWithdrawalActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/PrepareKrakenWithdrawalActivity.kt
@@ -52,7 +52,7 @@ class PrepareKrakenWithdrawalActivity : AppCompatActivity(), NfcAdapter.ReaderCa
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_prepare_kraken_withdrawal)
- App.getNavigatorComponent().inject(this)
+ App.navigatorComponent?.inject(this)
ctx = TangemContext.loadFromBundle(this, intent.extras)
diff --git a/app/src/main/java/com/tangem/presentation/activity/PrepareTransactionActivity.kt b/app/src/main/java/com/tangem/presentation/activity/PrepareTransactionActivity.kt
index 2a5cd99068..758ea7ae85 100644
--- a/app/src/main/java/com/tangem/presentation/activity/PrepareTransactionActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/PrepareTransactionActivity.kt
@@ -47,7 +47,7 @@ class PrepareTransactionActivity : AppCompatActivity(), NfcAdapter.ReaderCallbac
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_prepare_transaction)
- App.getNavigatorComponent().inject(this)
+ App.navigatorComponent?.inject(this)
nfcManager = NfcManager(this, this)
lifecycle.addObserver(NfcLifecycleObserver(nfcManager))
diff --git a/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt b/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt
index e9961fe73e..dc8bbb7665 100644
--- a/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/PurgeActivity.kt
@@ -61,7 +61,7 @@ class PurgeActivity : AppCompatActivity(), NfcAdapter.ReaderCallback, CardProtoc
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_purge)
- App.getNavigatorComponent().inject(this)
+ App.navigatorComponent?.inject(this)
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
diff --git a/app/src/main/java/com/tangem/presentation/activity/VerifyCardActivity.kt b/app/src/main/java/com/tangem/presentation/activity/VerifyCardActivity.kt
index 1089d8ea68..976b1bb083 100644
--- a/app/src/main/java/com/tangem/presentation/activity/VerifyCardActivity.kt
+++ b/app/src/main/java/com/tangem/presentation/activity/VerifyCardActivity.kt
@@ -29,7 +29,7 @@ class VerifyCardActivity : AppCompatActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_verify_card)
- App.getNavigatorComponent().inject(this)
+ App.navigatorComponent?.inject(this)
}
override fun onBackPressed() {