@ -4,8 +4,9 @@ import android.content.Intent;
import android.content.SharedPreferences ;
import android.content.SharedPreferences ;
import android.os.Bundle ;
import android.os.Bundle ;
import android.support.annotation.Nullable ;
import android.support.annotation.Nullable ;
import android.util.Log ;
import android.support.v7.widget.SwitchCompat ;
import android.view.View ;
import android.view.View ;
import android.widget.CompoundButton ;
import com.gmeremit.online.gmeremittance_native.GmeApplication ;
import com.gmeremit.online.gmeremittance_native.GmeApplication ;
import com.gmeremit.online.gmeremittance_native.R ;
import com.gmeremit.online.gmeremittance_native.R ;
@ -15,9 +16,8 @@ import com.gmeremit.online.gmeremittance_native.changepasswordV2.view.ChangePass
import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog ;
import com.gmeremit.online.gmeremittance_native.customwidgets.CustomAlertDialog ;
import com.gmeremit.online.gmeremittance_native.settings.adapter.LanguageSelectionDialogRVAdapter ;
import com.gmeremit.online.gmeremittance_native.settings.adapter.LanguageSelectionDialogRVAdapter ;
import com.gmeremit.online.gmeremittance_native.splash_screen.model.LanguageModel ;
import com.gmeremit.online.gmeremittance_native.splash_screen.model.LanguageModel ;
import com.gmeremit.online.gmeremittance_native.transactionpasspromt.view.TransactionPasswordPromptActivity ;
import com.gmeremit.online.gmeremittance_native.utils.security.SecurityUtils ;
import com.gmeremit.online.gmeremittance_native.utils.security.SecurityUtils ;
import com.mtramin.rxfingerprint.RxFingerprin t ;
import com.mtramin.rxfingerprint.data.FingerprintAuthenticationResul t ;
import com.mtramin.rxfingerprint.data.FingerprintEncryptionResult ;
import com.mtramin.rxfingerprint.data.FingerprintEncryptionResult ;
import java.util.ArrayList ;
import java.util.ArrayList ;
@ -26,6 +26,7 @@ import java.util.List;
import butterknife.BindView ;
import butterknife.BindView ;
import butterknife.ButterKnife ;
import butterknife.ButterKnife ;
import butterknife.OnClick ;
import butterknife.OnClick ;
import io.reactivex.Observable ;
import io.reactivex.Observer ;
import io.reactivex.Observer ;
import io.reactivex.android.schedulers.AndroidSchedulers ;
import io.reactivex.android.schedulers.AndroidSchedulers ;
import io.reactivex.disposables.Disposable ;
import io.reactivex.disposables.Disposable ;
@ -39,14 +40,16 @@ import static com.gmeremit.online.gmeremittance_native.base.PrefKeys.USER_PREFER
* Created by FMI - LT - 17 on 2 / 20 / 2018 .
* Created by FMI - LT - 17 on 2 / 20 / 2018 .
* /
* /
public class SettingsView extends BaseActivity {
public class SettingsView extends BaseActivity implements CompoundButton . OnCheckedChangeListener {
@BindView ( R . id . view_fingerprint )
@BindView ( R . id . view_fingerprint )
View view_fingerprint ;
SwitchCompat view_fingerprint ;
@BindView ( R . id . view_fingerprint_divider )
@BindView ( R . id . view_fingerprint_divider )
View view_fingerprint_divider ;
View view_fingerprint_divider ;
@Override
Disposable fingerPrintAuthEnableSubs ;
protected void onCreate ( @Nullable Bundle savedInstanceState ) {
protected void onCreate ( @Nullable Bundle savedInstanceState ) {
super . onCreate ( savedInstanceState ) ;
super . onCreate ( savedInstanceState ) ;
setContentView ( R . layout . activity_settings ) ;
setContentView ( R . layout . activity_settings ) ;
@ -55,11 +58,18 @@ public class SettingsView extends BaseActivity {
private void init ( ) {
private void init ( ) {
ButterKnife . bind ( this ) ;
ButterKnife . bind ( this ) ;
if ( ! SecurityUtils . doesAppHasBiometricFeature ( this ) )
{
if ( ! SecurityUtils . doesAppHasBiometricFeature ( this ) ) {
view_fingerprint . setVisibility ( View . GONE ) ;
view_fingerprint . setVisibility ( View . GONE ) ;
view_fingerprint_divider . setVisibility ( View . GONE ) ;
view_fingerprint_divider . setVisibility ( View . GONE ) ;
}
}
else
{
checkIfFingerPrintIsEnabled ( ) ;
}
}
private void checkIfFingerPrintIsEnabled ( ) {
view_fingerprint . setChecked ( GmeApplication . getStorage ( ) . getBoolean ( PrefKeys . APP_FINGER_PRINT_ENABLED , false ) ) ;
}
}
@OnClick ( { R . id . view_change_password , R . id . iv_back , R . id . view_language , R . id . view_fingerprint } )
@OnClick ( { R . id . view_change_password , R . id . iv_back , R . id . view_language , R . id . view_fingerprint } )
@ -78,52 +88,23 @@ public class SettingsView extends BaseActivity {
promptLanguageSelectionDialog ( ) ;
promptLanguageSelectionDialog ( ) ;
break ;
break ;
case R . id . view_fingerprint :
mockEncryption ( "1234" ) ;
break ;
}
}
}
}
private void promptForFingerprintAuth ( ) {
@Override
protected void onStart ( ) {
super . onStart ( ) ;
view_fingerprint . setOnCheckedChangeListener ( this ) ;
}
}
private void mockEncryption ( String abc ) {
SecurityUtils . encryptSecret ( this , abc )
. doOnSubscribe ( subs - > showProgressBar ( true , getString ( R . string . processing_request_text ) ) )
. doFinally ( ( ) - > showProgressBar ( false , "" ) )
. subscribeOn ( Schedulers . io ( ) )
. observeOn ( AndroidSchedulers . mainThread ( ) )
. subscribe ( new Observer < FingerprintEncryptionResult > ( ) {
@Override
public void onSubscribe ( Disposable d ) {
}
@Override
public void onNext ( FingerprintEncryptionResult fingerprintEncryptionResult ) {
if ( fingerprintEncryptionResult . isSuccess ( ) ) {
showPopUpMessage ( "Now you can use your fingerprint to perform transactions" , CustomAlertDialog . AlertType . SUCCESS , action - > GmeApplication . getStorage ( ) . edit ( ) . putString ( PrefKeys . APP_USER_SECRET_KEY , fingerprintEncryptionResult . getEncrypted ( ) ) . apply ( ) ) ;
}
else
showPopUpMessage ( fingerprintEncryptionResult . getMessage ( ) , CustomAlertDialog . AlertType . FAILED , null ) ;
}
@Override
public void onError ( Throwable e ) {
showPopUpMessage ( e . getMessage ( ) , CustomAlertDialog . AlertType . FAILED , null ) ;
}
@Override
public void onComplete ( ) {
}
} ) ;
@Override
protected void onStop ( ) {
super . onStop ( ) ;
view_fingerprint . setOnCheckedChangeListener ( null ) ;
}
}
private void promptLanguageSelectionDialog ( ) {
private void promptLanguageSelectionDialog ( ) {
LanguageSelectionListingDialog languageSelectionDialog = new LanguageSelectionListingDialog ( ) ;
LanguageSelectionListingDialog languageSelectionDialog = new LanguageSelectionListingDialog ( ) ;
languageSelectionDialog . setLanguageData ( getLanguagedata ( ) ) ;
languageSelectionDialog . setLanguageData ( getLanguagedata ( ) ) ;
@ -140,11 +121,11 @@ public class SettingsView extends BaseActivity {
}
}
private void changeLocale ( LanguageModel lang ) {
private void changeLocale ( LanguageModel lang ) {
SharedPreferences myPreferences = GmeApplication . getStorage ( ) ;
SharedPreferences myPreferences = GmeApplication . getStorage ( ) ;
myPreferences . edit ( ) . putString ( USER_PREFERRED_LOCALE , lang . getLocaleCode ( ) ) . apply ( ) ;
myPreferences . edit ( ) . putString ( USER_PREFERRED_LOCALE , lang . getLocaleCode ( ) ) . apply ( ) ;
myPreferences . edit ( ) . putString ( USER_PREFERRED_COUNTRY_CODE , lang . getCountryCode ( ) ) . apply ( ) ;
myPreferences . edit ( ) . putString ( USER_PREFERRED_LANGUAGE , lang . getCountryName ( ) ) . apply ( ) ;
myPreferences . edit ( ) . putString ( USER_PREFERRED_COUNTRY_CODE , lang . getCountryCode ( ) ) . apply ( ) ;
myPreferences . edit ( ) . putString ( USER_PREFERRED_LANGUAGE , lang . getCountryName ( ) ) . apply ( ) ;
restartApp ( ) ;
restartApp ( ) ;
}
}
@ -152,15 +133,15 @@ public class SettingsView extends BaseActivity {
private List < LanguageModel > getLanguagedata ( ) {
private List < LanguageModel > getLanguagedata ( ) {
List < LanguageModel > models = new ArrayList < > ( ) ;
List < LanguageModel > models = new ArrayList < > ( ) ;
models . add ( new LanguageModel ( "EN" , "en" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . english_language_text ) , "English" ) ) ;
models . add ( new LanguageModel ( "KH" , "km" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . cambodia_lanugage_text ) , "Cambodia" ) ) ;
models . add ( new LanguageModel ( "EN" , "en" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . english_language_text ) , "English" ) ) ;
models . add ( new LanguageModel ( "KH" , "km" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . cambodia_lanugage_text ) , "Cambodia" ) ) ;
/ / models . add ( new LanguageModel ( "CN" , "th" , "China" ) ) ;
/ / models . add ( new LanguageModel ( "CN" , "th" , "China" ) ) ;
models . add ( new LanguageModel ( "KR" , "ko" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . korean_language_text ) , "Korea" ) ) ;
models . add ( new LanguageModel ( "KR" , "ko" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . korean_language_text ) , "Korea" ) ) ;
/ / models . add ( new LanguageModel ( "NP" , "th" , "Nepal" ) ) ;
/ / models . add ( new LanguageModel ( "NP" , "th" , "Nepal" ) ) ;
models . add ( new LanguageModel ( "TH" , "th" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . thailand_language_text ) , "Thailand" ) ) ;
models . add ( new LanguageModel ( "TH" , "th" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . thailand_language_text ) , "Thailand" ) ) ;
/ / models . add ( new LanguageModel ( "PK" , "th" , "Pakistan" ) ) ;
/ / models . add ( new LanguageModel ( "PK" , "th" , "Pakistan" ) ) ;
/ / models . add ( new LanguageModel ( "PH" , "th" , "Philippines" ) ) ;
/ / models . add ( new LanguageModel ( "PH" , "th" , "Philippines" ) ) ;
models . add ( new LanguageModel ( "LK" , "ta" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . srilanka_lanugage_text ) , "Sri Lanka" ) ) ;
models . add ( new LanguageModel ( "LK" , "ta" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . srilanka_lanugage_text ) , "Sri Lanka" ) ) ;
/ / models . add ( new LanguageModel ( "SG" , "en" , "Singapore" ) ) ;
/ / models . add ( new LanguageModel ( "SG" , "en" , "Singapore" ) ) ;
/ / models . add ( new LanguageModel ( "VN" , "th" , "Vietnam" ) ) ;
/ / models . add ( new LanguageModel ( "VN" , "th" , "Vietnam" ) ) ;
/ / models . add ( new LanguageModel ( "RU" , "th" , "Russia" ) ) ;
/ / models . add ( new LanguageModel ( "RU" , "th" , "Russia" ) ) ;
@ -173,16 +154,35 @@ public class SettingsView extends BaseActivity {
/ / models . add ( new LanguageModel ( "AE" , "th" , "UAE" ) ) ;
/ / models . add ( new LanguageModel ( "AE" , "th" , "UAE" ) ) ;
/ / models . add ( new LanguageModel ( "UZ" , "th" , "Uzbekistan" ) ) ;
/ / models . add ( new LanguageModel ( "UZ" , "th" , "Uzbekistan" ) ) ;
/ / models . add ( new LanguageModel ( "BY" , "th" , "Belarus" ) ) ;
/ / models . add ( new LanguageModel ( "BY" , "th" , "Belarus" ) ) ;
models . add ( new LanguageModel ( "MN" , "mn" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . mongolia_language_text ) , "Mongolia" ) ) ;
models . add ( new LanguageModel ( "MM" , "my" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . myanmar_language_text ) , "Myanmar" ) ) ;
models . add ( new LanguageModel ( "NP" , "ne" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . nepali_language_text ) , "Nepali" ) ) ;
models . add ( new LanguageModel ( "ID" , "in" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . indonesia_language_text ) , "Indonesia" ) ) ;
models . add ( new LanguageModel ( "BD" , "bn" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . bengali_language_text ) , "Bangladesh" ) ) ;
models . add ( new LanguageModel ( "RU" , "ru" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . russian_langugae_text ) , "Russia" ) ) ;
models . add ( new LanguageModel ( "UZ" , "uz" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . uzbek_language_text ) , "Uzbekistan" ) ) ;
models . add ( new LanguageModel ( "VN" , "vi" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . vietnam_language_text ) , "Vietnam" ) ) ;
models . add ( new LanguageModel ( "MN" , "mn" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . mongolia_language_text ) , "Mongolia" ) ) ;
models . add ( new LanguageModel ( "MM" , "my" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . myanmar_language_text ) , "Myanmar" ) ) ;
models . add ( new LanguageModel ( "NP" , "ne" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . nepali_language_text ) , "Nepali" ) ) ;
models . add ( new LanguageModel ( "ID" , "in" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . indonesia_language_text ) , "Indonesia" ) ) ;
models . add ( new LanguageModel ( "BD" , "bn" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . bengali_language_text ) , "Bangladesh" ) ) ;
models . add ( new LanguageModel ( "RU" , "ru" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . russian_langugae_text ) , "Russia" ) ) ;
models . add ( new LanguageModel ( "UZ" , "uz" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . uzbek_language_text ) , "Uzbekistan" ) ) ;
models . add ( new LanguageModel ( "VN" , "vi" , GmeApplication . getStringExtractor ( ) . getStringFromStringId ( R . string . vietnam_language_text ) , "Vietnam" ) ) ;
return models ;
return models ;
}
}
@Override
protected void onDestroy ( ) {
super . onDestroy ( ) ;
if ( fingerPrintAuthEnableSubs ! = null & & ! fingerPrintAuthEnableSubs . isDisposed ( ) )
fingerPrintAuthEnableSubs . dispose ( ) ;
}
@Override
public void onCheckedChanged ( CompoundButton buttonView , boolean isChecked ) {
switch ( buttonView . getId ( ) )
{
case R . id . view_fingerprint :
{
GmeApplication . getStorage ( ) . edit ( ) . putBoolean ( PrefKeys . APP_FINGER_PRINT_ENABLED , isChecked ) . apply ( ) ;
}
}
}
}
}