diff --git a/.idea/misc.xml b/.idea/misc.xml index b0c7b20..dc44dda 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -29,7 +29,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index 0e3ec54..5a09b18 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -28,8 +28,14 @@ repositories { url 'http://dl.bintray.com/amulyakhare/maven' } } +def acraVersion = '5.2.1' dependencies { + implementation "ch.acra:acra-http:$acraVersion" + implementation "ch.acra:acra-toast:$acraVersion" + implementation "ch.acra:acra-notification:$acraVersion" + + implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.support:preference-v7:27.1.1' implementation 'com.android.support:appcompat-v7:27.1.1' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2477479..80031db 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,6 +17,7 @@ + android:theme="@style/AppTheme"/> \ No newline at end of file diff --git a/app/src/main/java/com/uam/wmi/findmytutor/FindMyTutor.java b/app/src/main/java/com/uam/wmi/findmytutor/FindMyTutor.java new file mode 100644 index 0000000..763c4b5 --- /dev/null +++ b/app/src/main/java/com/uam/wmi/findmytutor/FindMyTutor.java @@ -0,0 +1,75 @@ +package com.uam.wmi.findmytutor; + +import android.app.Application; +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.Configuration; + +import static org.acra.ReportField.*; +import org.acra.ACRA; +import org.acra.annotation.AcraNotification; +import org.acra.config.CoreConfigurationBuilder; +import org.acra.config.HttpSenderConfigurationBuilder; +import org.acra.config.ToastConfigurationBuilder; +import org.acra.data.StringFormat; +import org.acra.sender.HttpSender; +import java.util.HashMap; +import java.util.Map; + + +@AcraNotification(resText = R.string.notification_text, + resTitle = R.string.notification_title, + resChannelName = R.string.notification_channel) +public class FindMyTutor extends Application { + @Override + protected void attachBaseContext(Context base) { + super.attachBaseContext(base); + + // ACRA core + CoreConfigurationBuilder builder = new CoreConfigurationBuilder(this) + .setBuildConfigClass(BuildConfig.class) + .setReportContent(REPORT_ID, PHONE_MODEL, LOGCAT, USER_APP_START_DATE, USER_CRASH_DATE, SHARED_PREFERENCES, + ANDROID_VERSION, STACK_TRACE, CUSTOM_DATA, BUILD_CONFIG) + .setReportFormat(StringFormat.JSON); + + // Toast for user + builder.setBuildConfigClass(BuildConfig.class) + .setReportFormat(StringFormat.JSON); + builder.getPluginConfigurationBuilder( + ToastConfigurationBuilder.class + ).setResText(R.string.acra_toast_text); + + SharedPreferences sharedPreferences = base.getSharedPreferences("com.uam.wmi.findmytutor_preferences", Context.MODE_PRIVATE); + Map header = new HashMap(); + String token = sharedPreferences.getString("API_KEY", "KEY_EMPTY"); + header.put("Authorization","Bearer " + token); + + // Api POST + builder.getPluginConfigurationBuilder( + HttpSenderConfigurationBuilder.class +// ).setUri("http://192.168.0.15:3000/api/acra") + ).setUri("https://s416084.projektstudencki.pl/develop/api/Feedback/autoFeedback") + .setHttpMethod(HttpSender.Method.POST) + .setHttpHeaders(header) + .setEnabled(true); + + ACRA.init(this, builder); + //Shared preferences + ACRA.getErrorReporter().putCustomData("USER_ID", sharedPreferences.getString("USER_ID", "no user id")); + } + + // Called by the system when the device configuration changes while your component is running. + // Overriding this method is totally optional! + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + } + + // This is called when the overall system is running low on memory, + // and would like actively running processes to tighten their belts. + // Overriding this method is totally optional! + @Override + public void onLowMemory() { + super.onLowMemory(); + } +} diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/LoginActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/LoginActivity.java index a7dd423..2cf6954 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/LoginActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/LoginActivity.java @@ -149,8 +149,11 @@ public class LoginActivity extends AppCompatActivity { private void loginProcess(String email, String password) { ValidateUser user = new ValidateUser(email, password); + LdapUser fuser = new LdapUser(email, password, "wmi", "tutor", "henryk", "zdzblo", email); + +// disposable.add(ldapService.validate(user) + disposable.add(ldapService.fakeValidate(fuser) - disposable.add(ldapService.validate(user) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(this::handleResponse, this::handleError)); diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/MapActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/MapActivity.java index 8e89d40..5f6c6e3 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/MapActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/MapActivity.java @@ -80,8 +80,6 @@ public class MapActivity extends BaseActivity private int mInterval = 10000; private Handler mHandler = new Handler(); private Runnable mStatusChecker; - private Handler manualLocHandler = new Handler(); - private Runnable manualLocStatusChecker; private MapView mapView; private MapboxMap mapboxMap; private Button selectLocationButton; @@ -623,8 +621,6 @@ public class MapActivity extends BaseActivity super.onDestroy(); mapView.onDestroy(); mHandler.removeCallbacks(mStatusChecker); - // TODO remove after BG sending - manualLocHandler.removeCallbacks(manualLocStatusChecker); disposable.dispose(); } diff --git a/app/src/main/java/com/uam/wmi/findmytutor/network/ApiClient.java b/app/src/main/java/com/uam/wmi/findmytutor/network/ApiClient.java index 0673250..ad2003d 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/network/ApiClient.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/network/ApiClient.java @@ -23,26 +23,27 @@ import retrofit2.converter.gson.GsonConverterFactory; public class ApiClient { - private static Retrofit retrofit = null; - private static int REQUEST_TIMEOUT = 60; - private static OkHttpClient okHttpClient; - private static final String BASE_URL = "https://s416084.projektstudencki.pl/master/"; + private static Retrofit retrofit = null; + private static int REQUEST_TIMEOUT = 60; + private static OkHttpClient okHttpClient; + private static final String BASE_URL = "https://s416084.projektstudencki.pl/develop/"; - public static Retrofit getClient(Context context) { + public static Retrofit getClient(Context context) { - if (okHttpClient == null) - initOkHttp(context); + if (okHttpClient == null) + initOkHttp(context); - if (retrofit == null) { - retrofit = new Retrofit.Builder() - .baseUrl(BASE_URL) - .client(okHttpClient) - .addConverterFactory(GsonConverterFactory.create()) - .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) - .build(); + if (retrofit == null) { + retrofit = new Retrofit.Builder() + .baseUrl(BASE_URL) + .client(okHttpClient) + .addConverterFactory(GsonConverterFactory.create()) + .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) + .build(); + } + + return retrofit; } - return retrofit; - } private static void initOkHttp(final Context context) { diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index b5db5f1..db10ac8 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -159,9 +159,14 @@ Błąd sieci! Błąd podczas pobierania danych. Błąd podczas pobierania statusów. + Upss. Coś poszło nie tak. Pracujemy nad tym! Brak informacji o dyzurze. Brak notatki. Wyszukiwarka + Nie przeszkadzać + Czekam na studentów + Na wakacjach + Status diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cd25c3a..1a1605b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -73,11 +73,16 @@ key_location_level Choose status - key_status_value + key_status_value Status Busy Available Consultation + Do not disturb + Waiting for students + On holidays + + Status Add custom status @@ -228,7 +233,13 @@ Network Error! Error handling status fetch Error handling status fetch + + Sorry, the application crashed. A report will be sent to the developers + Sorry, the application crashed. A report will be sent to the developers + FMT Crash + FMT Lack information about duty hours No note. Search + mock location string