Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions AndroidClient/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ plugins {

android {
namespace 'com.tom.meeter'
compileSdk 33
compileSdk 35

defaultConfig {
applicationId "com.tom.meeter"
minSdk 21
targetSdk 33
targetSdk 35
versionCode 1
versionName "1.0"

Expand Down
12 changes: 9 additions & 3 deletions AndroidClient/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@
<activity
android:name=".context.profile.activity.ProfileActivity"
android:label="@string/profile_activity_label"
android:noHistory="true"
android:parentActivityName=".context.auth.activity.LoginActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
Expand All @@ -74,8 +73,15 @@
<activity
android:name=".context.profile.activity.SettingsActivity"
android:label="Settings"
android:parentActivityName=".context.profile.activity.ProfileActivity">
</activity>
android:parentActivityName=".context.profile.activity.ProfileActivity" />

<activity
android:name=".context.user.activity.UserActivity"
android:label="UserActivity" />

<activity
android:name=".context.event.activity.EventActivity"
android:label="EventActivity" />

<meta-data
android:name="com.google.android.gms.version"
Expand Down
2 changes: 2 additions & 0 deletions AndroidClient/src/main/assets/app.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
#Backend section
server.ip=192.168.61.59
server.port=8084
server.proto=http
server.io_port=8085
server.io_proto=ws

#Map section
#meters
Expand Down
49 changes: 48 additions & 1 deletion AndroidClient/src/main/java/com/tom/meeter/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,30 @@

import android.app.Application;

import com.tom.meeter.context.auth.AuthComponent;
import com.tom.meeter.context.auth.DaggerAuthComponent;
import com.tom.meeter.context.event.DaggerEventComponent;
import com.tom.meeter.context.event.EventComponent;
import com.tom.meeter.context.token.DaggerTokenComponent;
import com.tom.meeter.context.token.TokenComponent;

public class App extends Application {

private static final String TAG = App.class.getCanonicalName();
private AppComponent component;
private AuthComponent authComponent;
private TokenComponent tokenComponent;
private EventComponent eventComponent;

@Override
public void onCreate() {
super.onCreate();
logMethod(TAG, this);

tokenComponent = buildTokenComponent();
authComponent = buildAuthComponent();
eventComponent = buildEventComponent();

component = buildComponent();
}

Expand All @@ -24,12 +39,44 @@ public void onTerminate() {

protected AppComponent buildComponent() {
return DaggerAppComponent.builder()
//.appModule(new AppModule(this))
.tokenComponent(tokenComponent)
.authComponent(authComponent)
.eventComponent(eventComponent)
.application(this)
.build();
}

protected AuthComponent buildAuthComponent() {
return DaggerAuthComponent.builder()
.application(this)
.build();
}

protected TokenComponent buildTokenComponent() {
return DaggerTokenComponent.builder()
.application(this)
.build();
}

protected EventComponent buildEventComponent() {
return DaggerEventComponent.builder()
.application(this)
.build();
}

public AppComponent getComponent() {
return component;
}

public AuthComponent getAuthComponent() {
return authComponent;
}

public TokenComponent getTokenComponent() {
return tokenComponent;
}

public EventComponent getEventComponent() {
return eventComponent;
}
}
34 changes: 16 additions & 18 deletions AndroidClient/src/main/java/com/tom/meeter/AppComponent.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,36 @@

import android.app.Application;

import com.tom.meeter.context.auth.activity.LoginActivity;
import com.tom.meeter.context.auth.activity.RegistrationActivity;
import com.tom.meeter.context.auth.infrastructure.AccountAuthenticator;
import com.tom.meeter.context.launcher.Launcher;
import com.tom.meeter.context.auth.AuthComponent;
import com.tom.meeter.context.event.EventComponent;
import com.tom.meeter.context.event.activity.EventActivity;
import com.tom.meeter.context.profile.activity.ProfileActivity;
import com.tom.meeter.context.profile.activity.SettingsActivity;
import com.tom.meeter.context.profile.fragment.ProfileFragment;
import com.tom.meeter.context.profile.fragment.UserEventsFragment;
import com.tom.meeter.context.token.TokenComponent;
import com.tom.meeter.context.user.activity.UserActivity;
import com.tom.meeter.infrastructure.injection.viewmodel.ViewModelModule;

import javax.inject.Singleton;

import dagger.BindsInstance;
import dagger.Component;

@Component(modules = {AppModule.class, ViewModelModule.class})
@Singleton
@Component(
modules = {AppModule.class, ViewModelModule.class},
dependencies = {TokenComponent.class, AuthComponent.class, EventComponent.class})
@AppScope
public interface AppComponent {

@Component.Builder
interface Builder {

/*@BindsInstance
Builder appModule(AppModule appModule);*/

@BindsInstance
Builder application(Application application);

Builder authComponent(AuthComponent authComponent);
Builder tokenComponent(TokenComponent tokenComponent);
Builder eventComponent(EventComponent eventComponent);

AppComponent build();
}

Expand All @@ -39,13 +41,9 @@ interface Builder {

void inject(UserEventsFragment userEventsFragment);

void inject(LoginActivity loginActivity);

void inject(RegistrationActivity registrationActivity);

void inject(AccountAuthenticator accountAuthenticator);

void inject(SettingsActivity settingsActivity);

void inject(Launcher launcher);
void inject(UserActivity userActivity);

void inject(EventActivity eventActivity);
}
64 changes: 30 additions & 34 deletions AndroidClient/src/main/java/com/tom/meeter/AppModule.java
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
package com.tom.meeter;

import static com.tom.meeter.infrastructure.common.Globals.getServerPath;

import android.app.Application;
import android.util.Log;

import androidx.annotation.NonNull;
import androidx.room.Room;

import com.tom.meeter.context.auth.service.AuthService;
import com.tom.meeter.context.profile.event.database.EventDao;
import com.tom.meeter.context.profile.event.database.EventDatabase;
import com.tom.meeter.context.profile.event.service.EventService;
import com.tom.meeter.context.profile.service.ProfileService;
import com.tom.meeter.context.profile.settings.service.SettingsService;
import com.tom.meeter.context.profile.user.database.UserDao;
import com.tom.meeter.context.profile.user.database.UserDatabase;
import com.tom.meeter.context.profile.user.service.UserService;
import com.tom.meeter.context.user.service.UserService;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

import javax.inject.Singleton;

import dagger.Module;
import dagger.Provides;
import retrofit2.Retrofit;
Expand All @@ -31,27 +31,34 @@
public class AppModule {

private static final String TAG = AppModule.class.getCanonicalName();
private static final String IP = "192.168.61.59";
private static final int PORT = 8084;
private static final String SERVER_URL = "http://" + IP + ":" + PORT + "/";


public AppModule() {
Log.d(TAG, "Configuring AppModule... Server URL is [" + SERVER_URL + "]");
Log.d(TAG, "Configuring AppModule...");
}

@Singleton
@AppScope
@NonNull
@Provides
public UserService provideUserService() {
public ProfileService provideProfileService(Application app) {
return new Retrofit.Builder()
.baseUrl(SERVER_URL)
.baseUrl(getServerPath(app))
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(ProfileService.class);
}

@AppScope
@NonNull
@Provides
public UserService provideUserService(Application app) {
return new Retrofit.Builder()
.baseUrl(getServerPath(app))
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(UserService.class);
}

@Singleton
@AppScope
@NonNull
@Provides
public UserDatabase provideUserDb(Application app) {
Expand All @@ -60,33 +67,33 @@ public UserDatabase provideUserDb(Application app) {
.build();
}

@Singleton
@AppScope
@NonNull
@Provides
public UserDao provideUserDao(UserDatabase userDatabase) {
return userDatabase.userDao();
}

@Singleton
@AppScope
@NonNull
@Provides
public Executor provideExecutor() {
return new ThreadPoolExecutor(4, 8, 1000, TimeUnit.SECONDS,
new ArrayBlockingQueue<>(15, false));
}

@Singleton
@AppScope
@NonNull
@Provides
public EventService provideEventService() {
public EventService provideEventService(Application app) {
return new Retrofit.Builder()
.baseUrl(SERVER_URL)
.baseUrl(getServerPath(app))
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(EventService.class);
}

@Singleton
@AppScope
@NonNull
@Provides
public EventDatabase provideEventDb(Application app) {
Expand All @@ -95,30 +102,19 @@ public EventDatabase provideEventDb(Application app) {
.build();
}

@Singleton
@AppScope
@NonNull
@Provides
public EventDao provideEventDao(EventDatabase eventDatabase) {
return eventDatabase.eventDao();
}

@Singleton
@NonNull
@Provides
public AuthService provideAuthService() {
return new Retrofit.Builder()
.baseUrl(SERVER_URL)
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(AuthService.class);
}

@Singleton
@AppScope
@NonNull
@Provides
public SettingsService provideSettingsService() {
public SettingsService provideSettingsService(Application app) {
return new Retrofit.Builder()
.baseUrl(SERVER_URL)
.baseUrl(getServerPath(app))
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(SettingsService.class);
Expand Down
11 changes: 11 additions & 0 deletions AndroidClient/src/main/java/com/tom/meeter/AppScope.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.tom.meeter;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

import javax.inject.Scope;

@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface AppScope {
}
Loading