diff --git a/app/src/debug/res/xml/network_security_config.xml b/app/src/debug/res/xml/network_security_config.xml new file mode 100644 index 0000000..dca93c0 --- /dev/null +++ b/app/src/debug/res/xml/network_security_config.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/java/io/github/jokoframework/activity/LoginActivity.java b/app/src/main/java/io/github/jokoframework/activity/LoginActivity.java index 5e2c8fd..55d4528 100644 --- a/app/src/main/java/io/github/jokoframework/activity/LoginActivity.java +++ b/app/src/main/java/io/github/jokoframework/activity/LoginActivity.java @@ -42,6 +42,7 @@ import io.github.jokoframework.model.UserAccessResponse; import io.github.jokoframework.model.UserData; import io.github.jokoframework.otp.OtpActivityNotLogged; +import io.github.jokoframework.singleton.MboehaoApp; import io.github.jokoframework.utilities.AppUtils; import rx.Observable; import rx.Subscriber; @@ -95,6 +96,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); initializeUI(); + MboehaoApp.prompDevHostName(this); } private void initializeUI() { @@ -299,7 +301,7 @@ private void loginJWT(LoginRequest loginRequest) { // Instanciar el RequestQueue. RequestQueue queue = Volley.newRequestQueue(this); - String url = getString(R.string.jwt_URL); + String url = MboehaoApp.getHostName() + getString(R.string.jwt_URL); Map params = new HashMap(); params.put("username", loginRequest.getUsername()); diff --git a/app/src/main/java/io/github/jokoframework/activity/SecondAuthenticationActivity.java b/app/src/main/java/io/github/jokoframework/activity/SecondAuthenticationActivity.java index 0a06b09..9a8b2cf 100644 --- a/app/src/main/java/io/github/jokoframework/activity/SecondAuthenticationActivity.java +++ b/app/src/main/java/io/github/jokoframework/activity/SecondAuthenticationActivity.java @@ -18,11 +18,13 @@ import io.github.jokoframework.R; import io.github.jokoframework.mboehaolib.util.Utils; +import io.github.jokoframework.singleton.MboehaoApp; public class SecondAuthenticationActivity extends BaseActivity { private EditText otpTextField; private String secret; private Activity thisActivity; + public Activity thisActivity() { return thisActivity; } @@ -34,6 +36,7 @@ protected void onCreate(Bundle savedInstanceState) { Bundle b = getIntent().getExtras(); assert b != null; secret = (String) b.get("SECRET"); + MboehaoApp.prompDevHostName(this); } private void initializeUI(){ @@ -58,7 +61,8 @@ private void initializeUI(){ private void otpValid(View view){ RequestQueue queue = Volley.newRequestQueue(this); - String url = getString(R.string.user_acces_URL); + + String url = MboehaoApp.getHostName() + getString(R.string.user_acces_URL); final Context ctx = view.getContext(); Intent intent = new Intent(ctx, HomeActivity.class); diff --git a/app/src/main/java/io/github/jokoframework/otp/edit/SaveActivity.java b/app/src/main/java/io/github/jokoframework/otp/edit/SaveActivity.java index 83304f6..9014e1c 100644 --- a/app/src/main/java/io/github/jokoframework/otp/edit/SaveActivity.java +++ b/app/src/main/java/io/github/jokoframework/otp/edit/SaveActivity.java @@ -21,10 +21,10 @@ import io.github.jokoframework.mboehaolib.util.Utils; import io.github.jokoframework.otp.token.Token; import io.github.jokoframework.otp.token.TokenPersistence; +import io.github.jokoframework.singleton.MboehaoApp; public class SaveActivity extends BaseActivity { - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -49,12 +49,14 @@ public void onClick(View v) { finish(); } }); + MboehaoApp.prompDevHostName(this); } private void saveSeed(Token token){ RequestQueue queue = Volley.newRequestQueue(this); - String url = getString(R.string.user_acces_URL); //<--saveseed_URL url to request, change values/strings.xml + // saveseed_URL url to request, change values/strings.xml + String url = MboehaoApp.getHostName() + getString(R.string.user_acces_URL); //Creates parameters Map params = new HashMap(); diff --git a/app/src/main/java/io/github/jokoframework/singleton/MboehaoApp.java b/app/src/main/java/io/github/jokoframework/singleton/MboehaoApp.java index 4277e52..712373f 100644 --- a/app/src/main/java/io/github/jokoframework/singleton/MboehaoApp.java +++ b/app/src/main/java/io/github/jokoframework/singleton/MboehaoApp.java @@ -1,12 +1,17 @@ package io.github.jokoframework.singleton; +import android.app.Activity; +import android.app.AlertDialog; import android.app.Application; import android.content.Context; import android.content.Intent; import android.preference.PreferenceManager; import androidx.multidex.MultiDex; import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.EditText; import android.widget.Toast; import com.crashlytics.android.Crashlytics; @@ -35,6 +40,9 @@ public class MboehaoApp extends Application { private static Context singletonApplicationContext; private static MboehaoApp mySelf; + private static String hostName = "https://sodep.com.py"; + private static Boolean devHostNameDefined = false; + /** * Instance variables */ @@ -80,6 +88,45 @@ public void onCreate() { MboehaoApp.setSingletonApplicationContext(this.getApplicationContext()); } + public static void setHostName(String newHostName){ + hostName = newHostName; + } + + public static String getHostName(){ + return hostName; + } + + public static void prompDevHostName(Activity ctx) { + if ( BuildConfig.DEBUG ) { + if ( !devHostNameDefined ) { + AlertDialog.Builder builder = new AlertDialog.Builder(ctx); + LayoutInflater inflater = ctx.getLayoutInflater(); + + View view = inflater.inflate(R.layout.prompt_hostname_view, null); + EditText inputHostName = view.findViewById(R.id.hostNameInput); + + builder.setView(view) + .setPositiveButton(R.string.button_accept, (dialog, id) -> { + if ( inputHostName.getText().toString().equals("") ) { + MboehaoApp.prompDevHostName(ctx); + return; + } + MboehaoApp.setHostName(inputHostName.getText().toString()); + devHostNameDefined = true; + }) + .setNegativeButton(R.string.button_cancel, (dialog, id) -> { + if ( inputHostName.getText().toString().equals("") ) { + MboehaoApp.prompDevHostName(ctx); + } + dialog.cancel(); + }); + + AlertDialog dialog = builder.create(); + dialog.show(); + } + } + } + public OkHttpClient.Builder getHttpClient() { return httpClient; } @@ -122,7 +169,7 @@ public static void setSingletonApplicationContext(Context singletonApplicationCo synchronized public Tracker getDefaultTracker() { if (mTracker == null) { this.analytics = GoogleAnalytics.getInstance(this); - analytics.getInstance(this).setLocalDispatchPeriod(1); + GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(1); // To enable debug logging use: adb shell setprop log.tag.GAv4 DEBUG mTracker = analytics.newTracker(0x7f070000); mTracker.enableAutoActivityTracking(true); diff --git a/app/src/main/res/layout/prompt_hostname_view.xml b/app/src/main/res/layout/prompt_hostname_view.xml new file mode 100644 index 0000000..605e94a --- /dev/null +++ b/app/src/main/res/layout/prompt_hostname_view.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bd24885..5a9c3d8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -46,8 +46,8 @@ New password must have at least 8 characters Ud. no aceptó aún los términos de uso de la aplicación. Por favor lea hasta el final y marque la casilla de aceptación si está de acuerdo con las condiciones http://example.com/ - http://192.168.0.33:8080/api/login - http://192.168.0.33:8080/api/token/user-access + /api/login + /api/token/user-access https://restcountries.eu/rest/v2/all?fields=name;alpha2Code Aviso Legal de Responsabilidades diff --git a/app/src/main/res/xml/network_security_config.xml b/app/src/release/res/xml/network_secure_config.xml similarity index 60% rename from app/src/main/res/xml/network_security_config.xml rename to app/src/release/res/xml/network_secure_config.xml index ba61c77..636e8f0 100644 --- a/app/src/main/res/xml/network_security_config.xml +++ b/app/src/release/res/xml/network_secure_config.xml @@ -1,9 +1,7 @@ + sodep.com.py - - 192.168.0.33 - \ No newline at end of file