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
24 changes: 16 additions & 8 deletions AndroidClient/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,15 @@ android {
baseline = file("lint-baseline.xml")
}
}

dependencies {

implementation libs.appcompat
implementation libs.recyclerview
implementation libs.material
implementation libs.cardview

implementation libs.lifecycleextensions
annotationProcessor libs.lifecyclecompiler
implementation libs.lifecycle.extensions
annotationProcessor libs.lifecycle.compiler

implementation libs.socketioclient
implementation libs.eventbus
Expand All @@ -76,17 +75,23 @@ dependencies {

// Retrofit & OkHttp
implementation libs.retrofit
implementation libs.retrofitconvertergson
implementation libs.retrofit.converter.jackson
//implementation libs.retrofitconvertergson
// https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jsr310
implementation(libs.jackson.datatype.jsr310)
// https://mvnrepository.com/artifact/com.fasterxml.jackson.datatype/jackson-datatype-jdk8
implementation(libs.jackson.datatype.jdk8)

implementation libs.okhttp

// Dagger 2
implementation libs.dagger
annotationProcessor libs.daggercompiler
annotationProcessor libs.dagger.compiler

// Room
implementation libs.roomruntime
implementation libs.roomrxjava2
annotationProcessor libs.roomcompiler
implementation libs.room.runtime
implementation libs.room.rxjava2
annotationProcessor libs.room.compiler


//LocalDateTime features
Expand All @@ -97,6 +102,8 @@ dependencies {
// https://mvnrepository.com/artifact/androidx.preference/preference
implementation 'androidx.preference:preference:1.2.1'

implementation libs.core


/*TESTS*/

Expand All @@ -112,3 +119,4 @@ dependencies {
//testImplementation("org.powermock:powermock-module-junit4:2.0.9")
}


4 changes: 4 additions & 0 deletions AndroidClient/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission
Expand Down Expand Up @@ -83,6 +84,9 @@
android:name=".context.event.activity.EventActivity"
android:label="EventActivity" />

<activity android:name=".context.event.activity.EventLocationMapActivity" />
<activity android:name=".context.event.activity.EventOnMapActivity" />

<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
Expand Down
40 changes: 40 additions & 0 deletions AndroidClient/src/main/java/com/tom/meeter/App.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.tom.meeter;

import static com.tom.meeter.context.notification.NotificationHelper.createNotificationChannel;
import static com.tom.meeter.infrastructure.common.InfrastructureHelper.logMethod;

import android.app.Application;
Expand All @@ -8,27 +9,40 @@
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.image.DaggerImageComponent;
import com.tom.meeter.context.image.ImageComponent;
import com.tom.meeter.context.token.DaggerTokenComponent;
import com.tom.meeter.context.token.TokenComponent;
import com.tom.meeter.context.user.DaggerUserComponent;
import com.tom.meeter.context.user.UserComponent;

public class App extends Application {

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

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

/* Independent */
tokenComponent = buildTokenComponent();
authComponent = buildAuthComponent();
imageComponent = buildImageComponent();

/* Dependent */
eventComponent = buildEventComponent();
userComponent = buildUserComponent();

component = buildComponent();

createNotificationChannel(this);
}

@Override
Expand All @@ -40,8 +54,10 @@ public void onTerminate() {
protected AppComponent buildComponent() {
return DaggerAppComponent.builder()
.tokenComponent(tokenComponent)
.imageComponent(imageComponent)
.authComponent(authComponent)
.eventComponent(eventComponent)
.userComponent(userComponent)
.application(this)
.build();
}
Expand All @@ -58,9 +74,25 @@ protected TokenComponent buildTokenComponent() {
.build();
}

protected ImageComponent buildImageComponent() {
return DaggerImageComponent.builder()
.application(this)
.build();
}

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

protected UserComponent buildUserComponent() {
return DaggerUserComponent.builder()
.application(this)
.tokenComponent(tokenComponent)
.imageComponent(imageComponent)
.build();
}

Expand All @@ -79,4 +111,12 @@ public TokenComponent getTokenComponent() {
public EventComponent getEventComponent() {
return eventComponent;
}

public ImageComponent getImageComponent() {
return imageComponent;
}

public UserComponent getUserComponent() {
return userComponent;
}
}
38 changes: 28 additions & 10 deletions AndroidClient/src/main/java/com/tom/meeter/AppComponent.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,33 @@

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.image.ImageComponent;
import com.tom.meeter.context.profile.activity.ProfileActivity;
import com.tom.meeter.context.profile.activity.SettingsActivity;
import com.tom.meeter.context.profile.fragment.ActiveEventsFragment;
import com.tom.meeter.context.profile.fragment.GoogleMapsFragment;
import com.tom.meeter.context.profile.fragment.ProfileFragment;
import com.tom.meeter.context.profile.fragment.UserEventsFragment;
import com.tom.meeter.context.profile.fragment.ProfileEventsFragment;
import com.tom.meeter.context.token.TokenComponent;
import com.tom.meeter.context.user.activity.UserActivity;
import com.tom.meeter.context.user.UserComponent;
import com.tom.meeter.infrastructure.injection.viewmodel.ViewModelModule;

import dagger.BindsInstance;
import dagger.Component;

@Component(
modules = {AppModule.class, ViewModelModule.class},
dependencies = {TokenComponent.class, AuthComponent.class, EventComponent.class})
modules = {
AppModule.class,
ViewModelModule.class
},
dependencies = {
TokenComponent.class,
AuthComponent.class,
ImageComponent.class,

EventComponent.class,
UserComponent.class
})
@AppScope
public interface AppComponent {

Expand All @@ -29,21 +41,27 @@ interface Builder {
Builder application(Application application);

Builder authComponent(AuthComponent authComponent);

Builder tokenComponent(TokenComponent tokenComponent);

Builder eventComponent(EventComponent eventComponent);

Builder imageComponent(ImageComponent imageComponent);

Builder userComponent(UserComponent userComponent);

AppComponent build();
}

void inject(ProfileActivity profileActivity);

void inject(ProfileFragment profileFragment);
void inject(SettingsActivity settingsActivity);

void inject(UserEventsFragment userEventsFragment);
void inject(ProfileFragment profileFragment);

void inject(SettingsActivity settingsActivity);
void inject(GoogleMapsFragment googleMapsFragment);

void inject(UserActivity userActivity);
void inject(ActiveEventsFragment activeEventsFragment);

void inject(EventActivity eventActivity);
void inject(ProfileEventsFragment profileEventsFragment);
}
52 changes: 25 additions & 27 deletions AndroidClient/src/main/java/com/tom/meeter/AppModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,20 @@
import androidx.annotation.NonNull;
import androidx.room.Room;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.json.JsonMapper;
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
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.user.service.UserService;
import com.tom.meeter.infrastructure.http.HttpClient;

import java.util.TimeZone;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
Expand All @@ -25,7 +30,7 @@
import dagger.Module;
import dagger.Provides;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.converter.jackson.JacksonConverterFactory;

@Module
public class AppModule {
Expand All @@ -42,22 +47,18 @@ public AppModule() {
public ProfileService provideProfileService(Application app) {
return new Retrofit.Builder()
.baseUrl(getServerPath(app))
.addConverterFactory(GsonConverterFactory.create())
.addConverterFactory(JacksonConverterFactory.create(
JsonMapper.builder()
.addModule(new JavaTimeModule())
.addModule(new Jdk8Module())
.serializationInclusion(JsonInclude.Include.NON_NULL)
.build()
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.setTimeZone(TimeZone.getDefault())))
.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);
}

@AppScope
@NonNull
@Provides
Expand All @@ -82,17 +83,6 @@ public Executor provideExecutor() {
new ArrayBlockingQueue<>(15, false));
}

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

@AppScope
@NonNull
@Provides
Expand All @@ -115,8 +105,16 @@ public EventDao provideEventDao(EventDatabase eventDatabase) {
public SettingsService provideSettingsService(Application app) {
return new Retrofit.Builder()
.baseUrl(getServerPath(app))
.addConverterFactory(GsonConverterFactory.create())
.addConverterFactory(JacksonConverterFactory.create())
//.addConverterFactory(GsonConverterFactory.create())
.build()
.create(SettingsService.class);
}

@AppScope
@NonNull
@Provides
public HttpClient provideHttpClient(Application app) {
return new HttpClient(getServerPath(app));
}
}

This file was deleted.

Loading