Proyectos de Subversion LeadersLinked - Android

Rev

Rev 4 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 4 Rev 5
Línea 19... Línea 19...
19
 
19
 
20
import android.content.pm.PackageManager;
20
import android.content.pm.PackageManager;
21
import android.annotation.SuppressLint;
21
import android.annotation.SuppressLint;
22
import android.content.Intent;
22
import android.content.Intent;
-
 
23
import android.content.res.Configuration;
-
 
24
import android.net.ConnectivityManager;
23
import android.content.res.Configuration;
25
import android.net.NetworkInfo;
24
import android.net.Uri;
26
import android.net.Uri;
25
import android.os.Build;
27
import android.os.Build;
26
import android.os.Bundle;
28
import android.os.Bundle;
27
import android.os.Environment;
29
import android.os.Environment;
Línea 57... Línea 59...
57
 
59
 
Línea 58... Línea 60...
58
    private final static String _URL = "https://stanging.leaderslinked.com";
60
    private final static String _URL = "https://stanging.leaderslinked.com";
Línea 59... Línea -...
59
 
-
 
60
    private ActivityResultLauncher<Intent> fileChooserLauncher;
61
 
61
 
62
    private ActivityResultLauncher<Intent> fileChooserLauncher;
62
 
63
 
63
    @RequiresApi(api = Build.VERSION_CODES.M)
64
    @RequiresApi(api = Build.VERSION_CODES.M)
64
    @Override
65
    @Override
Línea 127... Línea 128...
127
 
128
 
128
 
-
 
Línea 129... Línea 129...
129
 
129
 
130
 
-
 
131
        mWebView = (TouchyWebView) findViewById(R.id.webView);
-
 
132
        // mWebView.setiTouckWebView(this); // No longer needed
-
 
133
 
-
 
134
        /*
-
 
135
        mWebView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
-
 
136
            @Override
-
 
137
            public void onScrollChange(View v,
-
 
138
                                       int scrollX,
-
 
139
                                       int scrollY,
-
 
140
                                       int oldScrollX,
-
 
141
                                       int oldScrollY) {
130
 
Línea 142... Línea 131...
142
                System.out.println(" View.OnScrollChangeListener scrollY = " + scrollY +  "oldScrollX = " + oldScrollX);
131
 
Línea 157... Línea 146...
157
        webSettings.setAllowContentAccess(true);
146
        webSettings.setAllowContentAccess(true);
158
        webSettings.setAllowFileAccessFromFileURLs(true);
147
        webSettings.setAllowFileAccessFromFileURLs(true);
159
        webSettings.setAllowUniversalAccessFromFileURLs(true);
148
        webSettings.setAllowUniversalAccessFromFileURLs(true);
160
        webSettings.setDomStorageEnabled(true);
149
        webSettings.setDomStorageEnabled(true);
161
        webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
150
        webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
-
 
151
        webSettings.setDatabaseEnabled(false);
162
        webSettings.setDisplayZoomControls(true);
152
        webSettings.setDisplayZoomControls(true);
163
        webSettings.setBuiltInZoomControls(true);
153
        webSettings.setBuiltInZoomControls(true);
Línea 164... Línea 154...
164
 
154
 
Línea 165... Línea 155...
165
        webSettings.setMediaPlaybackRequiresUserGesture(false);
155
        webSettings.setMediaPlaybackRequiresUserGesture(false);
Línea -... Línea 156...
-
 
156
 
-
 
157
 
-
 
158
        mWebView.setWebViewClient(new WebViewClient() {
-
 
159
 
-
 
160
            @Override
-
 
161
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
-
 
162
                super.onReceivedError(view, errorCode, description, failingUrl);
-
 
163
                Log.e("WebView", "Error loading URL: " + failingUrl + " - " + description + " (Code: " + errorCode + ")");
-
 
164
                
-
 
165
                // Intentar recargar una vez más después de un error
-
 
166
                if (failingUrl.equals(_URL)) {
-
 
167
                    Log.d("WebView", "Attempting to reload after error...");
-
 
168
                    new android.os.Handler().postDelayed(new Runnable() {
-
 
169
                        @Override
-
 
170
                        public void run() {
-
 
171
                            view.reload();
-
 
172
                        }
-
 
173
                    }, 2000); // Esperar 2 segundos antes de reintentar
-
 
174
                }
-
 
175
            }
-
 
176
            
-
 
177
            @Override
-
 
178
            public void onReceivedSslError(WebView view, android.webkit.SslErrorHandler handler, android.net.http.SslError error) {
Línea -... Línea 179...
-
 
179
                Log.e("WebView", "SSL Error: " + error.toString() + " for URL: " + error.getUrl());
-
 
180
                // Continuar a pesar del error SSL (solo para desarrollo/testing)
-
 
181
                handler.proceed();
-
 
182
            }
-
 
183
 
166
 
184
            @Override
Línea 167... Línea 185...
167
 
185
            public void onPageStarted(WebView view, String url, android.graphics.Bitmap favicon) {
168
        mWebView.setWebViewClient(new WebViewClient() {
186
                super.onPageStarted(view, url, favicon);
169
 
187
                Log.d("WebView", "Started loading: " + url);
170
 
188
                mSwipeRefreshLayout.setRefreshing(true);
171
 
-
 
172
 
-
 
-
 
189
            }
173
            @Override
190
 
Línea 174... Línea -...
174
            public void onPageFinished(WebView view, String url) {
-
 
175
                findViewById(R.id.webView).setVisibility(View.VISIBLE);
191
            @Override
176
                mSwipeRefreshLayout.setRefreshing(false);
192
            public void onPageFinished(WebView view, String url) {
177
 
193
                findViewById(R.id.webView).setVisibility(View.VISIBLE);
Línea 178... Línea 194...
178
 
194
                mSwipeRefreshLayout.setRefreshing(false);
Línea 291... Línea 307...
291
                    return false;
307
                    return false;
292
                }
308
                }
293
            }
309
            }
294
        });
310
        });
Línea -... Línea 311...
-
 
311
 
-
 
312
        // Verificar conectividad de red
-
 
313
        if (isNetworkAvailable()) {
-
 
314
            Log.d("WebView", "Network available, proceeding to load URL");
-
 
315
            // Limpiar completamente el caché antes de cargar
295
 
316
            clearWebViewCache();
-
 
317
            mWebView.loadUrl(_URL);
-
 
318
        } else {
-
 
319
            Log.e("WebView", "No network connection available");
296
        mWebView.loadUrl(_URL);
320
        }
297
    }
-
 
298
 
321
    }
299
 
-
 
300
 
322
    
-
 
323
    private void clearWebViewCache() {
301
    /* // No longer needed
324
        // Limpiar todos los tipos de caché del WebView
302
    public void reloadPage() {
325
        mWebView.clearCache(true);
303
        System.out.println("reloadPage");
-
 
-
 
326
        mWebView.clearFormData();
304
 
327
        mWebView.clearHistory();
305
        if(!mSwipeRefreshLayout.isRefreshing()) {
328
        mWebView.clearSslPreferences();
-
 
329
        
-
 
330
        // Limpiar cookies
-
 
331
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
306
 
332
            android.webkit.CookieManager.getInstance().removeAllCookies(null);
307
            mSwipeRefreshLayout.setRefreshing(true);
333
            android.webkit.CookieManager.getInstance().flush();
308
            mWebView.reload();
-
 
-
 
334
        } else {
309
 
335
            android.webkit.CookieManager.getInstance().removeAllCookie();
-
 
336
        }
-
 
337
        
-
 
338
        Log.d("WebView", "Cache, cookies and data cleared completely");
-
 
339
    }
-
 
340
    
-
 
341
    private boolean isNetworkAvailable() {
-
 
342
        ConnectivityManager connectivityManager = 
-
 
343
                (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
-
 
344
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
-
 
345
        boolean isConnected = activeNetworkInfo != null && activeNetworkInfo.isConnected();
-
 
346
        Log.d("WebView", "Network status: " + (isConnected ? "Connected" : "Disconnected"));
310
        }
347
        return isConnected;
311
    }
-
 
312
    */
-
 
313
 
-
 
Línea 314... Línea 348...
314
 
348
    }
315
 
349
 
316
    @Override
350
    @Override
317
    public boolean onKeyDown(int keyCode, KeyEvent event) {
351
    public boolean onKeyDown(int keyCode, KeyEvent event) {
Línea 346... Línea 380...
346
    public void onConfigurationChanged(Configuration newConfig){
380
    public void onConfigurationChanged(Configuration newConfig){
347
        super.onConfigurationChanged(newConfig);
381
        super.onConfigurationChanged(newConfig);
348
    }
382
    }
Línea 349... Línea 383...
349
 
383
 
350
    public boolean file_permission(){
-
 
351
        /*
-
 
352
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && (checkSelfPermission(WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED || checkSelfPermission(CAMERA) == PackageManager.PERMISSION_DENIED)) {
-
 
353
            ActivityCompat.requestPermissions(MainActivity.this, new String[]{WRITE_EXTERNAL_STORAGE, CAMERA}, 1);
-
 
354
            return true;
-
 
355
        }else{
-
 
356
            return false;
-
 
357
        }*/
-
 
358
 
384
    public boolean file_permission(){
359
        int checkPermissionExternal = PackageManager.PERMISSION_GRANTED;
385
        int checkPermissionExternal = PackageManager.PERMISSION_GRANTED;
360
        int checkPermissionReadMediaAudio = PackageManager.PERMISSION_GRANTED;
386
        int checkPermissionReadMediaAudio = PackageManager.PERMISSION_GRANTED;
361
        int checkPermissionReadMediaVideo = PackageManager.PERMISSION_GRANTED;
387
        int checkPermissionReadMediaVideo = PackageManager.PERMISSION_GRANTED;