diff --git a/.gitignore b/.gitignore index 0c1fdca..e44c272 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ # Built application files -*.apk -*.ap_ + # Files for the ART/Dalvik VM *.dex diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/BaseActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/BaseActivity.java index 4485cfe..b55bb4e 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/BaseActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/BaseActivity.java @@ -5,6 +5,7 @@ import android.app.FragmentTransaction; import android.content.Intent; import android.content.pm.PackageManager; import android.content.res.Configuration; +import android.content.res.Resources; import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; @@ -18,6 +19,7 @@ import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.SearchView; import android.support.v7.widget.Toolbar; +import android.util.DisplayMetrics; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -30,6 +32,7 @@ import com.uam.wmi.findmytutor.utils.ActiveFragment; import com.uam.wmi.findmytutor.utils.PrefUtils; + public abstract class BaseActivity extends AppCompatActivity implements BottomNavigationView.OnNavigationItemSelectedListener { @@ -54,25 +57,24 @@ public abstract class BaseActivity drawerNavigationView = findViewById(R.id.nav_view); sideDrawer = findViewById(R.id.activity_container); - drawerNavigationView.setNavigationItemSelectedListener( item -> { String itemName = (String) item.getTitle(); Intent launchIntent; - if (itemName.equals("Whitelist")) { + if (itemName.equals(getResources().getString(R.string.navigation_item_whitelist))) { /* launchIntent = new Intent(getApplicationContext(), WhitelistActivity.class); startActivity(launchIntent);*/ - } else if (itemName.equals("Blacklist")) { + } else if (itemName.equals(getResources().getString(R.string.navigation_item_blacklist))) { /* launchIntent = new Intent(getApplicationContext(), BlacklistActivity.class); startActivity(launchIntent);*/ - } else if (itemName.equals("Profile")) { + } else if (itemName.equals(getResources().getString(R.string.navigation_item_profile))) { /* launchIntent = new Intent(getApplicationContext(), ProfileActivity.class); startActivity(launchIntent);*/ - } else if (itemName.equals("Settings")) { + } else if (itemName.equals(getResources().getString(R.string.navigation_item_settings))) { launchIntent = new Intent(getApplicationContext(), SettingsActivity.class); startActivity(launchIntent); - } else if (itemName.equals("Log out")) { + } else if (itemName.equals(getResources().getString(R.string.navigation_item_logout))) { stopBackgroundLocalizationTask(); PrefUtils.cleanUserLocalStorage(getApplicationContext()); 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 6241f50..6b33d70 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 @@ -51,7 +51,6 @@ public class LoginActivity extends AppCompatActivity { private LdapService ldapService; private UserService userService; private CompositeDisposable disposable = new CompositeDisposable(); - private Boolean isTutor = false; @Override protected void onCreate(Bundle savedInstanceState) { 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 99d1a75..d718a92 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 @@ -6,10 +6,14 @@ import android.animation.ValueAnimator; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources; import android.os.Build; import android.os.Bundle; import android.os.Handler; +import android.util.DisplayMetrics; import android.util.Log; +import android.widget.Toast; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.annotations.Marker; @@ -37,13 +41,13 @@ import io.reactivex.observers.DisposableSingleObserver; import io.reactivex.schedulers.Schedulers; +import java.util.Locale; + public class MapActivity extends BaseActivity implements OnMapReadyCallback { - String tag = "LifeCycleEvents"; - private MapView mapView; private MapboxMap mapboxMap; private int mInterval = 10000; @@ -56,7 +60,8 @@ public class MapActivity extends BaseActivity private Runnable mStatusChecker; - + Locale myLocale; + String currentLanguage = "pl", currentLang; @Override protected void onCreate(Bundle savedInstanceState) { @@ -90,8 +95,14 @@ public class MapActivity extends BaseActivity //start background task startBackgroundLocalizationTask(); + + currentLanguage = getIntent().getStringExtra(currentLang); + } + + + @Override public void onMapReady(MapboxMap map) { mapboxMap = map; @@ -187,7 +198,21 @@ public class MapActivity extends BaseActivity } - + public void setLocale(String localeName) { + if (!localeName.equals(currentLanguage)) { + myLocale = new Locale(localeName); + Resources res = getResources(); + DisplayMetrics dm = res.getDisplayMetrics(); + Configuration conf = res.getConfiguration(); + conf.locale = myLocale; + res.updateConfiguration(conf, dm); + Intent refresh = new Intent(this, MapActivity.class); + refresh.putExtra(currentLang, localeName); + startActivity(refresh); + } else { + Toast.makeText(this, "Language already selected!", Toast.LENGTH_SHORT).show(); + } + } @@ -236,37 +261,6 @@ public class MapActivity extends BaseActivity mapView.onSaveInstanceState(outState); } - - - /*@Override - public void startLocalizationService() { - if ((ContextCompat.checkSelfPermission(getApplicationContext(), android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED)) { - - if ((ActivityCompat.shouldShowRequestPermissionRationale(MapActivity.this, android.Manifest.permission.ACCESS_FINE_LOCATION))) { - - } else { - ActivityCompat.requestPermissions(MapActivity.this, new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION - - }, - REQUEST_PERMISSIONS); - } - } else { - - if (isTutor) { - Intent intent = new Intent(getApplicationContext(), BackgroundLocalizationService.class); - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - startForegroundService(intent); - } else { - startService(intent); - } - - } else { - Toast.makeText(getApplicationContext(), "Please enable the gps", Toast.LENGTH_SHORT).show(); - } - } - }*/ - @Override protected int getContentViewId() { return R.layout.activity_map; diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/SettingsActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/SettingsActivity.java index 42551a9..9ee6011 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/SettingsActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/SettingsActivity.java @@ -1,9 +1,13 @@ package com.uam.wmi.findmytutor.activity; +import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.content.pm.PackageManager; +import android.content.res.Configuration; +import android.content.res.Resources; import android.os.Build; import android.os.Bundle; import android.preference.EditTextPreference; @@ -11,31 +15,82 @@ import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; +import android.util.DisplayMetrics; +import android.util.Log; import android.view.MenuItem; +import android.widget.Toast; + import com.uam.wmi.findmytutor.R; +import com.uam.wmi.findmytutor.utils.PrefUtils; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Locale; +import java.util.Set; + +import static com.mapbox.mapboxsdk.Mapbox.getApplicationContext; public class SettingsActivity extends AppCompatPreferenceActivity { private static final String TAG = SettingsActivity.class.getSimpleName(); + Locale myLocale; + String currentLanguage = "pl", currentLang; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //getSupportActionBar().setDisplayHomeAsUpEnabled(true); + // load settings fragment getFragmentManager().beginTransaction().replace(android.R.id.content, new MainPreferenceFragment()).commit(); } + + public void setLocale(String localeName) { + + Locale myLocale = new Locale(localeName); + Resources res = getResources(); + DisplayMetrics dm = res.getDisplayMetrics(); + Configuration conf = res.getConfiguration(); + conf.locale = myLocale; + res.updateConfiguration(conf, dm); + Intent refresh = new Intent(this, MapActivity.class); + refresh.putExtra(currentLang, localeName); + startActivity(refresh); + } + + public static class MainPreferenceFragment extends PreferenceFragment { + @SuppressLint("ResourceType") @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.layout.pref_main); + + Preference languagesList = findPreference(getResources().getString(R.string.key_language)); + + languagesList.setOnPreferenceChangeListener((preference, newValue) -> { + if (!newValue.toString().equals("0")){ + ((SettingsActivity)getActivity()).setLocale("pl"); + PrefUtils.storeLocale(getActivity(),"pl"); + }else{ + ((SettingsActivity)getActivity()).setLocale("en"); + PrefUtils.storeLocale(getActivity(),"en"); + } + + return true; + }); + + + + } } + + @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { @@ -85,26 +140,8 @@ public class SettingsActivity extends AppCompatPreferenceActivity { return true; } }; - - /** - * Email client intent to send support mail - * Appends the necessary device information to email body - * useful when providing support - */ - public static void sendFeedback(Context context) { - String body = null; - try { - body = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName; - body = "\n\n-----------------------------\nPlease don't remove this information\n Device OS: Android \n Device OS version: " + - Build.VERSION.RELEASE + "\n App Version: " + body + "\n Device Brand: " + Build.BRAND + - "\n Device Model: " + Build.MODEL + "\n Device Manufacturer: " + Build.MANUFACTURER; - } catch (PackageManager.NameNotFoundException e) { - } - Intent intent = new Intent(Intent.ACTION_SEND); - intent.setType("message/rfc822"); - intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"team@findmytutor.com"}); - intent.putExtra(Intent.EXTRA_SUBJECT, "Query from android app"); - intent.putExtra(Intent.EXTRA_TEXT, body); - context.startActivity(Intent.createChooser(intent, context.getString(R.string.choose_email_client))); - } } + + + + diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/StartupActivity.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/StartupActivity.java index 934b486..430311b 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/StartupActivity.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/StartupActivity.java @@ -2,20 +2,28 @@ package com.uam.wmi.findmytutor.activity; import android.app.Activity; import android.content.Intent; +import android.content.res.Configuration; +import android.content.res.Resources; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; +import android.util.DisplayMetrics; +import android.widget.Toast; import com.uam.wmi.findmytutor.utils.PrefUtils; +import java.util.Locale; + public class StartupActivity extends AppCompatActivity { private static final int AUTHENTICATION_REQUEST_CODE = 666; + String currentLang; @Override protected void onCreate(Bundle savedInstanceState) { if (PrefUtils.isLoggedIn(getApplicationContext())){ Intent startupIntent = new Intent(this, MapActivity.class); + startupIntent.putExtra(currentLang, PrefUtils.getLocale(getApplicationContext())); startupIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(startupIntent); finish(); @@ -38,4 +46,8 @@ public class StartupActivity extends AppCompatActivity { finish(); } + + + + } diff --git a/app/src/main/java/com/uam/wmi/findmytutor/utils/PrefUtils.java b/app/src/main/java/com/uam/wmi/findmytutor/utils/PrefUtils.java index 07eb7a8..2977ea2 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/utils/PrefUtils.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/utils/PrefUtils.java @@ -114,8 +114,15 @@ public class PrefUtils { editor.apply(); } - public static String getUserName(Context context) { - return getSharedPreferences(context).getString("USER_NAME", null); + public static void storeLocale(Context context, String locale) { + SharedPreferences.Editor editor = getSharedPreferences(context).edit(); + editor.putString("LOCALE", locale); + editor.apply(); } + public static String getLocale(Context context) { + return getSharedPreferences(context).getString("LOCALE", null); + } + + } \ No newline at end of file diff --git a/app/src/main/res/layout/pref_main.xml b/app/src/main/res/layout/pref_main.xml index fdc9b61..9bf76bb 100644 --- a/app/src/main/res/layout/pref_main.xml +++ b/app/src/main/res/layout/pref_main.xml @@ -3,12 +3,12 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - + - - \ No newline at end of file diff --git a/app/src/main/res/layout/user_list_modal.xml b/app/src/main/res/layout/user_list_modal.xml index 8355b19..f154ef3 100644 --- a/app/src/main/res/layout/user_list_modal.xml +++ b/app/src/main/res/layout/user_list_modal.xml @@ -14,7 +14,6 @@ android:layout_marginBottom="@dimen/dimen_10" android:fontFamily="sans-serif-medium" android:lineSpacingExtra="8sp" - android:text="@string/lbl_new_note_title" android:textColor="@color/colorAccent" android:textSize="@dimen/lbl_new_note_title" android:textStyle="normal" /> diff --git a/app/src/main/res/menu/nav_items.xml b/app/src/main/res/menu/nav_items.xml index 310e506..6fa4e02 100644 --- a/app/src/main/res/menu/nav_items.xml +++ b/app/src/main/res/menu/nav_items.xml @@ -5,7 +5,7 @@ + android:title="@string/title_sharing" /> + android:title="@string/user_list_nav" /> \ No newline at end of file diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 5a62888..b686890 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -1,16 +1,13 @@ Zaloguj - Hasło (opcjonalne) Zaloguj Nieprawidłowe hasło Hasło jest zbyt krótkie Nieprawidłowy mail To pole jest wymagane + Hasło - - - Udostępnianie Udostępnianie lokalizacji Poziom udostępniania @@ -19,11 +16,6 @@ Dokładna Sczegółowość udostępniania key_location_level - - Status - Nie przeszkadzać - Czekam na studentów - Na wakacjach Opis key_description @@ -36,7 +28,8 @@ Wybierz język O aplikacji - We are just like you :)\nA group of people trying to shape our everyday life into something useful. We hope to bring you the best product and quality of service.\nThank you for using our app ! + + Jesteśmy grupą studentów, która chce pomoć w rozwoju naszego wydziału.\nDziękujemy za używanie naszej aplikacji.\nZespół FMT.! 0.1.0 Masz jakieś pytania? Uwagi? Chętnie odpiszemy! Skontaktuj się z nami @@ -46,4 +39,86 @@ http://findmytutor.projektstudencki.pl/terms-of-service/ Wersja Wybierz klienta poczty - \ No newline at end of file + FindMyTutor + Find My Tutor + + + Mapa + Notyfikacje + Profil użytkownika + + + Otwórz menu + Zamknij menu + Czarna lista + Biała lista + Ustawienia + Profil uzytkownika + Wyloguj + + Ustawienia + Mapa + + + Zaloguj! + Wyloguj! + MainActivity + pk.eyJ1IjoiZG9tYWdhbHNreSIsImEiOiJjamd4am4zazYwNXo1MzBxeDZtYjA4d2s4In0.KzNdhc9V_-SYe14AZ-q3Ew + + Czarna lista + Biała lista + Ustawienia + + + Udostępnianie + + + + + Wybierz status + Status + Zajęty + Dostępny + Konsultacje + Dodaj własny status + + + Ręczna lokalizacja + Wybierz ręczną lokalizacje + Dodaj ręczną lokalizacje + Skrzydło A + Skrzydło C + ŁącznikD + + key_language + Ustawienia + + + Ogólne ustawienia + + + Data & sync + + + + + Ustawienia + OK + + Zamknij + Pokój + Email + Notatka + Dyżury + Dyżury + Niepoprawny format loginu. + Zakład + Loading … + Logo find my tutor + Login (Ldap) + Zaloguj! + + Lista użytkowników + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 992d181..d7eab17 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,12 +1,11 @@ - FindMyTutor - Sign in + FindMyTutor + Log in Find My Tutor Map Notification - Profile Drawer Open @@ -19,13 +18,6 @@ Settings Notes - No notes found! - New Note - Enter your note! - - - - Email Password Sign in or register Sign out @@ -34,11 +26,7 @@ This password is too short This password is incorrect This field is required - "Contacts permissions are needed for providing email - completions." - - Permission was denied, but is needed for core -functionality. + MainActivity pk.eyJ1IjoiZG9tYWdhbHNreSIsImEiOiJjamd4am4zazYwNXo1MzBxeDZtYjA4d2s4In0.KzNdhc9V_-SYe14AZ-q3Ew @@ -103,7 +91,7 @@ functionality. 0.1.0 Got any queries? We are happy to help! Send Feedback - key_send_feedback + key_send_feedback Privacy Policy http://findmytutor.projektstudencki.pl/privacy-policy/ Terms & Conditions @@ -116,16 +104,6 @@ functionality. General - - Enable social recommendations - Recommendations for people to contact - based on your message history - - - Display name - John Smith - - Add friends to messages Always When possible @@ -140,7 +118,6 @@ functionality. Data & sync - Sync frequency 15 minutes 30 minutes @@ -172,27 +149,13 @@ functionality. - System sync settings - Notifications - - New message notifications - - Ringtone - Silent - - Vibrate Settings OK - Request updates - Remove updates - Unknown location - - Batched location updates No location reported @@ -200,20 +163,19 @@ functionality. %d locations reported - Main2Activity - There is no users in system Close - Pokój + Room Email - Notatka - Dyżury - Dyżury + Note + Duty Hours + Duty Hours Invalid format login. Use s11111 format - Zakład - Loading ... + Department + Loading … Logo find my tutor Login (sXXXXXX) Log in + Users list