diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index b5304981..7b197c13 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/GmeApplication.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/GmeApplication.java index 5bed697c..6e34185f 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/GmeApplication.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/GmeApplication.java @@ -174,9 +174,9 @@ public class GmeApplication extends MultiDexApplication { } } - public void updateResources(Resources res) { - this.resources=res; - } +// public void updateResources(Resources res) { +// this.resources=res; +// } } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BaseActivity.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BaseActivity.java index 52bc5658..b39d2b5a 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BaseActivity.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/base/BaseActivity.java @@ -2,23 +2,39 @@ package com.gmeremit.online.gmeremittance_native.base; import android.app.Activity; import android.content.Context; +import android.content.ContextWrapper; +import android.content.Intent; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.os.Build; import android.support.v4.app.FragmentManager; -import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.Toast; +import com.gmeremit.online.gmeremittance_native.GmeApplication; import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog; import com.gmeremit.online.gmeremittance_native.customwidgets.CustomProgressDialog; +import java.util.Locale; + +import static com.gmeremit.online.gmeremittance_native.base.PrefKeys.USER_PREFERRED_LOCALE; + public class BaseActivity extends AppCompatActivity implements BaseContractInterface { private CustomProgressDialog dialog; private boolean isProgressBarShowing; private CustomAlertDialog customAlertDialog; + @Override + protected void attachBaseContext(Context newBase) { + String lang_code = GmeApplication.getStorage().getString(USER_PREFERRED_LOCALE, "en"); + Context context = changeLang(newBase, lang_code); + super.attachBaseContext(context); + } + @Override public void showProgressBar(boolean action, String message) { try { @@ -61,9 +77,7 @@ public class BaseActivity extends AppCompatActivity implements BaseContractInter customAlertDialog.show(fragmentManager, "CustomerMessage" + alertType.toString()); - } - catch (Exception e) - { + } catch (Exception e) { } @@ -105,5 +119,46 @@ public class BaseActivity extends AppCompatActivity implements BaseContractInter } } + public static ContextWrapper changeLang(Context context, String lang_code) { + Locale sysLocale; + + Resources rs = context.getResources(); + Configuration config = rs.getConfiguration(); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + sysLocale = config.getLocales().get(0); + } else { + sysLocale = config.locale; + } + if (!lang_code.equals("") && !sysLocale.getLanguage().equals(lang_code)) { + Locale locale = new Locale(lang_code); + Locale.setDefault(locale); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + config.setLocale(locale); + } else { + config.locale = locale; + } + Resources resources = context.getResources(); + resources.updateConfiguration(config, context.getResources().getDisplayMetrics()); +// GmeApplication.getStringExtractor().updateResources(resources); + } + return new ContextWrapper(context); + } + + public void restartApp() + { + try { + Intent i = getBaseContext().getPackageManager() + .getLaunchIntentForPackage(getBaseContext().getPackageName()); + i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(i); +// restart(this,500); + } + catch(NullPointerException ne) + { + showToastMessage("Please restart app manually."); + } + } + } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/view/HomeActivityV2.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/view/HomeActivityV2.java index 7522aab9..aafe34f0 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/view/HomeActivityV2.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/homeV2/view/HomeActivityV2.java @@ -444,7 +444,7 @@ public class HomeActivityV2 extends BaseActivity implements HomeParentViewContra getResources().getDisplayMetrics() ); - GmeApplication.getStringExtractor().updateResources(res); +// GmeApplication.getStringExtractor().updateResources(res); try { Intent i = getBaseContext().getPackageManager() .getLaunchIntentForPackage(getBaseContext().getPackageName()); diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/settings/view/SettingsView.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/settings/view/SettingsView.java index 39b46851..b933d2ae 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/settings/view/SettingsView.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/settings/view/SettingsView.java @@ -1,8 +1,6 @@ package com.gmeremit.online.gmeremittance_native.settings.view; import android.content.Intent; -import android.content.res.Configuration; -import android.content.res.Resources; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; @@ -10,24 +8,24 @@ import android.view.View; import com.gmeremit.online.gmeremittance_native.GmeApplication; import com.gmeremit.online.gmeremittance_native.R; +import com.gmeremit.online.gmeremittance_native.base.BaseActivity; import com.gmeremit.online.gmeremittance_native.changepasswordV2.view.ChangePasswordV2Activity; import com.gmeremit.online.gmeremittance_native.settings.adapter.LanguageSelectionDialogRVAdapter; import com.gmeremit.online.gmeremittance_native.splash_screen.model.LanguageModel; - import java.util.ArrayList; import java.util.List; -import java.util.Locale; import butterknife.ButterKnife; import butterknife.OnClick; +import static com.gmeremit.online.gmeremittance_native.base.PrefKeys.USER_PREFERRED_LOCALE; + /** * Created by FMI-LT-17 on 2/20/2018. */ -public class SettingsView extends AppCompatActivity { - +public class SettingsView extends BaseActivity { @Override @@ -41,7 +39,7 @@ public class SettingsView extends AppCompatActivity { ButterKnife.bind(this); } - @OnClick({R.id.view_change_password, R.id.iv_back,R.id.view_language}) + @OnClick({R.id.view_change_password, R.id.iv_back, R.id.view_language}) public void onClick(View view) { switch (view.getId()) { @@ -60,8 +58,7 @@ public class SettingsView extends AppCompatActivity { } - private void promptLanguageSelectionDialog() - { + private void promptLanguageSelectionDialog() { LanguageSelectionListingDialog languageSelectionDialog = new LanguageSelectionListingDialog(); languageSelectionDialog.setLanguageData(getLanguagedata()); languageSelectionDialog.setListener(new LanguageSelectionDialogRVAdapter.LanguageSelectionListener() { @@ -77,34 +74,12 @@ public class SettingsView extends AppCompatActivity { } private void changeLocale(String localeCode) { - Locale locale = new Locale(localeCode); - Locale.setDefault(locale); - // Create a new configuration object - Configuration config = new Configuration(); - // Set the locale of the new configuration - config.locale = locale; - // Update the configuration of the Accplication context - Resources res= getResources(); - - res.updateConfiguration( - config, - getResources().getDisplayMetrics() - ); - GmeApplication.getStringExtractor().updateResources(res); - try { - Intent i = getBaseContext().getPackageManager() - .getLaunchIntentForPackage(getBaseContext().getPackageName()); - i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - startActivity(i); - } - catch(NullPointerException ne) - { - } + GmeApplication.getStorage().edit().putString(USER_PREFERRED_LOCALE, localeCode).apply(); + restartApp(); } - private List getLanguagedata() - { + private List getLanguagedata() { List models = new ArrayList<>(); models.add(new LanguageModel("BD", "bd", "Bangladesh")); models.add(new LanguageModel("KH", "th", "Cambodia")); diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/presenter/SplashScreenPresenter.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/presenter/SplashScreenPresenter.java index c81d3255..64102573 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/presenter/SplashScreenPresenter.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/presenter/SplashScreenPresenter.java @@ -36,20 +36,4 @@ public class SplashScreenPresenter extends BasePresenter implements SplashScreen this.gateway.updatePreferredLanguageToStorage(selectedLanguage.getCountryName()); } - @Override - public void checkIfUserHasPreferredLocale() { - String preferredLocale = this.gateway.getPreferredLocale(); - if (preferredLocale != null && preferredLocale.length() > 0) { - this.view.updateLocaleGlobally(preferredLocale); - //TODO Incase you want to update flag or title to selected language too. -// this.languageModels = this.gateway.getRelatedLanguageData(); -// if(languageModels!=null&&languageModels.size()>0) { -// for (LanguageModel languageModel : languageModels) -// { -// if(languageModel.getLocaleCode().equalsIgnoreCase(preferredLocale)) -// this.view.updateSelectedLanguage(languageModel); -// } -// } - } - } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/presenter/SplashScreenPresenterInterface.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/presenter/SplashScreenPresenterInterface.java index a6e0fe65..7a3452dd 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/presenter/SplashScreenPresenterInterface.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/presenter/SplashScreenPresenterInterface.java @@ -12,7 +12,6 @@ public interface SplashScreenPresenterInterface extends BasePresenterInterface { void updatePreferredLanguage(LanguageModel selectedLanguage); - void checkIfUserHasPreferredLocale(); interface SplashScreenContractInterfacee extends BaseContractInterface { @@ -20,8 +19,6 @@ public interface SplashScreenPresenterInterface extends BasePresenterInterface { void updateLanguageData(List languageModels); - void updateLocaleGlobally(String preferredLocale); - void updateSelectedLanguage(LanguageModel languageModel); } } diff --git a/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java b/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java index 2655e533..00582ee6 100644 --- a/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java +++ b/app/src/main/java/com/gmeremit/online/gmeremittance_native/splash_screen/view/SplashScreen.java @@ -111,10 +111,8 @@ public class SplashScreen extends BaseActivity implements View.OnClickListener, @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - presenter=new SplashScreenPresenter(this); - //We want to check if user has selected any locale prior to binding view. - presenter.checkIfUserHasPreferredLocale(); setContentView(R.layout.activity_splash_screen_key_1); + ButterKnife.bind(this); init(); performDefaultAction(savedInstanceState); @@ -128,7 +126,8 @@ public class SplashScreen extends BaseActivity implements View.OnClickListener, } private void init() { - ButterKnife.bind(this); + presenter=new SplashScreenPresenter(this); + languageViewTransitionManager = new LanguageViewTransitionManager(this); layouts = new int[]{ R.layout.fragment_splash_one, @@ -145,9 +144,6 @@ public class SplashScreen extends BaseActivity implements View.OnClickListener, languageSelectionRVAdapter.setLanguageSelectionListener(this); languageRv.setAdapter(languageSelectionRVAdapter); -// KeyboardUtils.forceCloseKeyboard(view_pager.getRootView()); - - } private void addBottomDots(int currentPage) { @@ -234,33 +230,13 @@ public class SplashScreen extends BaseActivity implements View.OnClickListener, @Override public void onLangugageSelected(LanguageModel languageModel) { - if (this.selectedLanguage == null) { + if (this.selectedLanguage == null||!this.selectedLanguage.getCountryCode().equalsIgnoreCase(languageModel.getCountryCode())) { this.selectedLanguage = languageModel; - changeLocale(this.selectedLanguage.getLocaleCode()); this.presenter.updatePreferredLanguage(this.selectedLanguage); - } else { - if (!this.selectedLanguage.getCountryCode().equalsIgnoreCase(languageModel.getCountryCode())) { - this.selectedLanguage = languageModel; - changeLocale(this.selectedLanguage.getLocaleCode()); - this.presenter.updatePreferredLanguage(this.selectedLanguage); - } + restartApp(); } } - private void changeLocale(String localeCode) { - updateLocaleGlobally(localeCode); - try { - Intent i = getBaseContext().getPackageManager() - .getLaunchIntentForPackage(getBaseContext().getPackageName()); - i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - startActivity(i); -// restart(this,500); - } - catch(NullPointerException ne) - { - } -// performLogout(); - } @Override public void proceedToDashboardScreen() { @@ -273,30 +249,6 @@ public class SplashScreen extends BaseActivity implements View.OnClickListener, languageSelectionRVAdapter.setData(languageModels); } - @Override - public void updateLocaleGlobally(String preferredLocale) { - Locale locale = new Locale(preferredLocale); - Locale.setDefault(locale); - // Create a new configuration object - Configuration config = new Configuration(); - // Set the locale of the new configuration - config.locale = locale; - // Update the configuration of the Accplication context - Resources res= getResources(); - - res.updateConfiguration( - config, - getResources().getDisplayMetrics() - ); - GmeApplication.getStringExtractor().updateResources(res); - } - - @Override - public void updateSelectedLanguage(LanguageModel languageModel) { - this.selectedLanguage=languageModel; - } - - public class ViewPagerAdapter extends PagerAdapter { private LayoutInflater layoutInflater; diff --git a/app/src/main/res/values-bn-rBD/strings.xml b/app/src/main/res/values-bn-rBD/strings.xml deleted file mode 100644 index 81720732..00000000 --- a/app/src/main/res/values-bn-rBD/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - GME Remit - \ No newline at end of file diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml deleted file mode 100644 index 0349a819..00000000 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ /dev/null @@ -1,50 +0,0 @@ - - GME Remit - Home - Invite - Send Money - Agents - Profile - - - - SanFranciscoText-Regular.otf - SanFranciscoText-Semibold.otf - SanFranciscoText-Bold.otf - SanFranciscoText-Heavy.otf - - - - Your document is in verification process. This will not take long. Thereafter you can enjoy GME online service. - Please add the required information. - Are you sure want to exit ? - Yes - No - - We are there to help you \n(Available time 10:00AM - 12:00AM) - Cancel - support@gmeremit.com - We are licensed by Ministry of Strategy & Finance to operate as the first Non-Bank Remittance Service providers in South Korea. Meeting all compliance regulations set forward by the regulators was a tough journey but today we feel proud about what we have achieved and how robust our operations are as a result of the hard work completed earlier. We are now ready with a 100% compliant and secured system that guarantees your money will arrive safely in right hands every single time. - For more information call at - Suggestions/Feedback - Остнс - General Enquiry - Subject - Hassle free money transfer to your \nloved ones - Connect to local community - Earn reward points and get \nsurprise gifts - Thank you for contacting us. - GME Wallet No. - Change Password - - - Whoops! - No Internet connection found. \nCheck your connection - You have successfully transferred your money to - Please keep this GME control no. very secure.\nShare with concerned party only - Refer to friend and get 7000KRW per refer when \nthey send money for the first time - - Your verification is still in progress. - - Остающийся годовой баланс - diff --git a/app/src/main/res/values-th-rTH/strings.xml b/app/src/main/res/values-th/strings.xml similarity index 99% rename from app/src/main/res/values-th-rTH/strings.xml rename to app/src/main/res/values-th/strings.xml index dd71f04d..714738ba 100644 --- a/app/src/main/res/values-th-rTH/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -3,7 +3,7 @@ เข้าสู่ระบบ เข้าสู่ระบบ - + ยินดีต้อนรับสู่ Global Money Express เข้าสู่ระบบด้วยอีเมล์หรือหมายเลขโทรศัพท์ ชื่อผู้ใช้งาน @@ -28,7 +28,7 @@ กรุณากรอกรหัสผ่านในช่องยืนยัน Not Translated Not Translated - + ขอความช่วยเหลือเกี่ยวกับรหัสผ่าน รีเซ็ทรหัสผ่านใหม่โดยใช้อีเมล์หรือหมายเลขโทรศัพท์ที่ผูกกับบัญชี GME ระบุอีเมล์หรือหมายเลขโทรศัพท์มือถือที่ได้ลงทะเบียนไว้ @@ -50,7 +50,7 @@ ติดต่อเจ้าหน้าที่ (เวลา 10:00น. - 24:00น.) ยกเลิก Not Translated - + วงเงินของท่าน หมายเลข GME Wallet No. Not Translated @@ -62,14 +62,14 @@ Not Translated ใช่ ไม่ใช่ - + เลือกผู้รับเงิน เพิ่มรายชื่อผู้รับเงิน เลื่อนไปทางซ้ายเพื่อแก้ไขหรือลบรายละเอียดผู้รับเงิน กดหน้าจอค้างไว้เพื่อแก้ไขหรือลบรายละเอียดผู้รับเงิน Not Translated Not Translated - + Not Translated Not Translated ระบุรายละเอียดผู้รับเงิน @@ -101,7 +101,7 @@ กรุณาเลือกความสัมพันธ์ กรุณาระบุหมายเลขโทรศัพท์มือถือผู้รับเงิน กรุณาเลือกเหตุผลการโอนเงิน - + อัตราแลกเปลี่ยนวันนี้ ยอดส่ง เลือกวิธีการส่งเงิน @@ -112,7 +112,7 @@ Not Translated Not Translated Not Translated - + ส่งเงิน วิธีการส่งเงิน รายละเอียดยอดเงิน @@ -144,7 +144,7 @@ Not Translated Not Translated Not Translated - + ใบเสร็จรับเงิน โอนเงินเรียบร้อย คุณได้โอนเงินไปยังผู้รับเรียบร้อยแล้ว @@ -161,7 +161,7 @@ Not Translated Not Translated Not Translated - + รายการการทำธุรกรรม ดูทั้งหมด ยังไม่ได้จ่าย @@ -175,7 +175,7 @@ Not Translated Not Translated Not Translated - + รายละเอียดธุรกรรม ยอดเงินโอนเข้า ยอดคงเหลือ @@ -183,10 +183,10 @@ จ่ายออก "" ไม่พบรายการทำธุรกรรม - + ตั้งค่า เปลี่ยนรหัสผ่าน - + Not Translated เวอร์ชั่นของแอพพลิเคชั่น ติดตามเราได้ที่ @@ -201,9 +201,9 @@ รหัสผ่านต้องประกอบด้วย สัญลักษณ์พิเศษ อักษรภาษาอังกฤษตัวใหญ่ และตัวเลขอย่างละ 1 ตัว รวมกัน 9 หลัก รหัสผ่านที่ยืนยันไม่ตรงกับรหัสผ่านใหม่ที่ตั้งไว้ Not Translated - + Not Translated - + ข้อมูลส่วนตัว บอกเราเกี่ยวกับตัวคุณหน่อย ระบุชื่อ-นามสกุล @@ -218,7 +218,7 @@ อาชีพ ระบุอาชีพ ยืนยันและดำเนินการต่อ - + ระบบความปลอดภัย เชื่อมบัญชีธนาคารของท่านกับเรา ระบุชื่อธนาคารของท่าน @@ -230,7 +230,7 @@ ระบุหมายเลขบัตรประจำตัว ที่มาของเงินโอน ระบุที่มาของเงิน - + อัพโหลด อัพโหลดเอกสาร ดูตัวอย่าง @@ -245,7 +245,7 @@ Not Translated Not Translated Not Translated - + กรุณากรอกชื่อ-นามสกุลที่ถูกต้อง กรุณาระบุหมายเลขโทรศัพท์มือถือเกาหลีที่ถูกต้อง กรุณาระบุหมายเลขโทรศัพท์มือถือ @@ -262,11 +262,11 @@ กรุณากรอกข้อมูลที่จำเป็นให้ครบถ้วน Not Translated Not Translated - + ช่วงเวลาที่ระบุไม่ถูกต้อง Not Translated Not Translated - + เลือกหน่วยเงิน ค้นหาหน่วยเงิน ไม่พบประเทศที่ระบุ @@ -324,11 +324,11 @@ Not Translated Not Translated - + Not Translated Not Translated - - + + Not Translated Not Translated Not Translated