From 7b92f07135be2287356a9b7ef9c4c844e6c1154b Mon Sep 17 00:00:00 2001 From: gonojuarez Date: Wed, 31 May 2023 15:18:03 -0300 Subject: [PATCH 01/13] - android 13 image request - interface optimization --- app/build.gradle | 24 +- app/src/main/AndroidManifest.xml | 7 +- .../ottaa/Bitmap/GestionarBitmap.java | 22 +- .../ottaa/Edit_Picto_Visual.java | 44 +--- .../DownloadFile/DownloadGroups.java | 5 +- .../DownloadFile/DownloadPhrases.java | 2 +- .../UploadFiles/UploadPhrase.java | 3 - .../stonefacesoft/ottaa/GaleriaGrupos2.java | 18 +- .../stonefacesoft/ottaa/JSONutils/Json.java | 2 +- .../com/stonefacesoft/ottaa/Principal.java | 50 ++-- .../java/com/stonefacesoft/ottaa/prefs.java | 10 +- .../Pictures/DownloadFirebasePictures.java | 20 +- .../ottaa/utils/RequestPersmissionClass.java | 55 ++++ .../ottaa/utils/textToSpeech.java | 2 +- .../ottaa/welcome/SplashActivity.java | 13 +- .../activity_noti_games.xml | 1 + .../activity_principal_v4.xml | 243 +++++++----------- .../activity_principal_v4_right.xml | 241 +++++++---------- .../layout-ldrtl/activity_principal_v4.xml | 64 +---- .../activity_principal_v4_right.xml | 74 ++---- .../layout-sw600dp/activity_noti_games.xml | 1 + .../layout-sw600dp/activity_principal_v4.xml | 238 +++++++---------- .../activity_principal_v4_right.xml | 237 +++++++---------- .../games_seleccionar_picto.xml | 174 +------------ .../layout-sw600dp/picto_guess_container.xml | 195 ++++++++++++++ .../res/layout-sw600dp/pictos_container.xml | 14 +- .../main/res/layout/activity_noti_games.xml | 1 + .../main/res/layout/activity_principal_v4.xml | 64 +---- .../layout/activity_principal_v4_right.xml | 61 +---- .../res/layout/games_seleccionar_picto.xml | 194 +------------- .../main/res/layout/picto_guess_container.xml | 195 ++++++++++++++ app/src/main/res/layout/pictos_container.xml | 26 +- gradle.properties | 3 +- 33 files changed, 1039 insertions(+), 1264 deletions(-) create mode 100644 app/src/main/java/com/stonefacesoft/ottaa/utils/RequestPersmissionClass.java create mode 100644 app/src/main/res/layout-sw600dp/picto_guess_container.xml create mode 100644 app/src/main/res/layout/picto_guess_container.xml diff --git a/app/build.gradle b/app/build.gradle index 4f8f3c75..be0c8715 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -14,7 +14,7 @@ android { } compileSdkVersion 33 - buildToolsVersion '30.0.3' + buildToolsVersion '33.0.2' useLibrary 'org.apache.http.legacy' useLibrary 'android.test.runner' @@ -28,8 +28,8 @@ android { applicationId "com.stonefacesoft.ottaa" minSdkVersion 24 targetSdkVersion 33 - versionCode 107 - versionName "6.7.17" // + versionCode 108 + versionName "6.7.18" // // Enabling multidex support. multiDexEnabled true resConfigs 'ar,en,es,it' @@ -221,8 +221,8 @@ dependencies { implementation 'com.google.firebase:firebase-auth' implementation 'com.google.firebase:firebase-config:21.4.0' implementation 'com.google.firebase:firebase-core:21.1.1' - implementation 'com.google.firebase:firebase-database:20.2.1' - implementation 'com.google.firebase:firebase-functions:20.3.0' + implementation 'com.google.firebase:firebase-database:20.2.2' + implementation 'com.google.firebase:firebase-functions:20.3.1' implementation ('com.google.firebase:firebase-messaging:23.1.2'){ exclude group: 'com.android.support' @@ -241,26 +241,26 @@ dependencies { implementation 'com.google.firebase:firebase-perf:20.3.2' implementation 'com.google.firebase:firebase-storage:20.2.0' implementation 'com.google.firebase:firebase-crashlytics:18.3.7' - implementation 'com.google.firebase:firebase-analytics:21.2.2' + implementation 'com.google.firebase:firebase-analytics:21.3.0' implementation 'io.grpc:grpc-okhttp:1.53.0' // material library - implementation 'com.google.android.material:material:1.8.0' + implementation 'com.google.android.material:material:1.9.0' //Guava library implementation('com.google.guava:guava:31.1-android') //Image Cropper implementation 'com.github.CanHub:Android-Image-Cropper:4.3.0' // pictograms library - implementation 'com.github.OTTAA-Project:PictogramsLibrary:0.19.62' + implementation 'com.github.OTTAA-Project:PictogramsLibrary:0.19.66' //Sendgrid integration implementation 'com.android.volley:volley:1.2.1' - implementation 'com.google.android.exoplayer:exoplayer:2.18.6' - implementation 'com.google.android.exoplayer:exoplayer-dash:2.18.6' - implementation 'com.google.android.exoplayer:exoplayer-transformer:2.18.6' - implementation 'com.google.android.exoplayer:exoplayer-core:2.18.6' + implementation 'com.google.android.exoplayer:exoplayer:2.18.7' + implementation 'com.google.android.exoplayer:exoplayer-dash:2.18.7' + implementation 'com.google.android.exoplayer:exoplayer-transformer:2.18.7' + implementation 'com.google.android.exoplayer:exoplayer-core:2.18.7' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 569c1b73..350b5f6e 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,6 +12,9 @@ + + + @@ -20,8 +23,7 @@ - + @@ -29,7 +31,6 @@ - 0 && imagenes.get(0) != null) { Bitmap nube=drawableToBitmap(mContext.getResources().getDrawable(R.drawable.ic_cloud_download_orange)); Bitmap bitmap = nube; @@ -232,7 +230,7 @@ public Bitmap combineImages(int mDeltax,int mDeltay) { mPosicionLogoY = mImagenFinalHeight-mDeltay-logo.getHeight(); comboImage.drawBitmap(logo,mPosicionLogoX,mPosicionLogoY,pinturas); } - return mImagenFinal; + return mImagenFinal; } @@ -306,7 +304,11 @@ public Bitmap redimensionarImagenMaximo(Bitmap mBitmap, float newWidth, float ne //metodo para armar las imagenes public void createImage(LoadOnlinePictograms loadOnlinePictograms) { - storeImage(combineImages(25,25),loadOnlinePictograms); + try { + storeImage(combineImages(25,25),loadOnlinePictograms); + } catch (Exception e) { + + } } @@ -359,8 +361,14 @@ public void setIdjson(ArrayList idjson) { public void getBitmapDeFrase(JSONObject frase,LoadOnlinePictograms loadOnlinePictograms) { preparePhrase(frase,loadOnlinePictograms); Bitmap bitmap = null; - if(combineImages(20, 20) != null ) { - bitmap = getRoundedCornerBitmap(combineImages(20, 2), 20); + Bitmap combineImages = null; + try { + combineImages = combineImages(20, 20); + }catch (Exception ex){ + combineImages = null; + } + if(combineImages != null ) { + bitmap = getRoundedCornerBitmap(combineImages, 20); loadOnlinePictograms.loadPictograms(bitmap); }else{ Log.d(TAG, "getBitmapDeFrase: "+ "Combine Images Error"); diff --git a/app/src/main/java/com/stonefacesoft/ottaa/Edit_Picto_Visual.java b/app/src/main/java/com/stonefacesoft/ottaa/Edit_Picto_Visual.java index a74b52c8..1c8040c3 100755 --- a/app/src/main/java/com/stonefacesoft/ottaa/Edit_Picto_Visual.java +++ b/app/src/main/java/com/stonefacesoft/ottaa/Edit_Picto_Visual.java @@ -1,6 +1,5 @@ package com.stonefacesoft.ottaa; -import android.Manifest; import android.app.Dialog; import android.content.Context; import android.content.Intent; @@ -11,7 +10,6 @@ import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.os.ParcelFileDescriptor; @@ -21,9 +19,7 @@ import android.text.Editable; import android.text.TextWatcher; import android.util.Log; -import android.view.Gravity; import android.view.KeyEvent; -import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -40,7 +36,6 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import androidx.cardview.widget.CardView; -import androidx.core.content.ContextCompat; import androidx.core.content.FileProvider; import com.canhub.cropper.CropImage; @@ -78,6 +73,7 @@ import com.stonefacesoft.ottaa.utils.Firebase.AnalyticsFirebase; import com.stonefacesoft.ottaa.utils.IntentCode; import com.stonefacesoft.ottaa.utils.JSONutils; +import com.stonefacesoft.ottaa.utils.RequestPersmissionClass; import com.stonefacesoft.ottaa.utils.constants.Constants; import com.stonefacesoft.ottaa.utils.exceptions.FiveMbException; import com.stonefacesoft.ottaa.utils.textToSpeech; @@ -699,26 +695,7 @@ private void cargarColor(int color) { public void showCustomAlert(CharSequence Testo) { - //Retrieve the layout inflator - LayoutInflater inflater = getLayoutInflater(); - //Assign the custom layout to view - //Parameter 1 - Custom layout XML - //Parameter 2 - Custom layout ID present in linearlayout tag of XML - View layout = inflater.inflate(R.layout.custom_toast, findViewById(R.id.toast_layout_root)); - TextView tv = layout.findViewById(R.id.text); - tv.setTextSize(sharedPrefsDefault.getInt("subtitulo_tamanio", 25)); - tv.setText(Testo); - //Return the application mContext - Toast toast = new Toast(getApplicationContext()); - //Set custom_toast gravity to bottom - toast.setGravity(Gravity.BOTTOM, 0, 50); - //Set custom_toast duration - toast.setDuration(Toast.LENGTH_SHORT); - //Set the custom layout to Toast - toast.setView(layout); - //Display custom_toast - toast.show(); - + myTTS.mostrarAlerta(Testo.toString()); } //------------------------------------------------------------------------------------ @@ -758,18 +735,10 @@ public void onClick(View v) { case R.id.ElPicto: //Pido los permisos para escribir en memoria externa - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && ContextCompat - .checkSelfPermission(getApplicationContext(), Manifest - .permission.WRITE_EXTERNAL_STORAGE) - != PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission - (getApplicationContext(), Manifest.permission.READ_EXTERNAL_STORAGE) - != PackageManager.PERMISSION_GRANTED) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - requestPermissions(new String[]{ - //Ver a donde hay q pasarlo, posiblemente Galeria Pictos - android.Manifest.permission.WRITE_EXTERNAL_STORAGE - }, Constants.EXTERNAL_STORAGE); - } + RequestPersmissionClass requestPersmissionClass = new RequestPersmissionClass(); + boolean requestPermission = requestPersmissionClass.requestImagePermission(this); + if(!requestPermission){ + requestPersmissionClass.makeRequestImagePermission(requestPermission,this); } else SelectorFuente(); break; @@ -1184,6 +1153,7 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in SelectorFuente(); } else { //permission granted + showCustomAlert(getString(R.string.edit_permisos_archivos)); } } diff --git a/app/src/main/java/com/stonefacesoft/ottaa/FirebaseRequests/DownloadFile/DownloadGroups.java b/app/src/main/java/com/stonefacesoft/ottaa/FirebaseRequests/DownloadFile/DownloadGroups.java index b64de7b9..f0bf9247 100644 --- a/app/src/main/java/com/stonefacesoft/ottaa/FirebaseRequests/DownloadFile/DownloadGroups.java +++ b/app/src/main/java/com/stonefacesoft/ottaa/FirebaseRequests/DownloadFile/DownloadGroups.java @@ -35,7 +35,7 @@ public DownloadGroups(Context mContext, DatabaseReference mDatabase, StorageRefe } - public void syncGroups(){ + public void syncGroups(){ final File gruposUsuarioFile = new File(rootPath, Constants.ARCHIVO_GRUPOS); mDatabase.child(Constants.Grupos).child(uid).child("URL_grupos_" + sharedPrefsDefault.getString(mContext.getString(R.string.str_idioma), locale)).addListenerForSingleValueEvent(new ValueEventListener() { @@ -69,12 +69,13 @@ public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) { if (!json.guardarJson(Constants.ARCHIVO_GRUPOS)) Log.e(TAG, "Error al guardar Json"); } + observableInteger.incrementValue(); } catch (Exception e) { e.printStackTrace(); Log.e("printStackTrace", "" + e); }finally { - observableInteger.incrementValue(); + } } diff --git a/app/src/main/java/com/stonefacesoft/ottaa/FirebaseRequests/DownloadFile/DownloadPhrases.java b/app/src/main/java/com/stonefacesoft/ottaa/FirebaseRequests/DownloadFile/DownloadPhrases.java index abbfc00d..bec29ded 100644 --- a/app/src/main/java/com/stonefacesoft/ottaa/FirebaseRequests/DownloadFile/DownloadPhrases.java +++ b/app/src/main/java/com/stonefacesoft/ottaa/FirebaseRequests/DownloadFile/DownloadPhrases.java @@ -81,7 +81,7 @@ public void onCancelled(@NonNull DatabaseError error) { }); } - public void downloadPhrases(){ + public void downloadPhrases(){ Log.e(TAG, "bajarFrases: " ); mDatabase.child(Constants.Frases).child(uid).addListenerForSingleValueEvent(new ValueEventListener() { @Override diff --git a/app/src/main/java/com/stonefacesoft/ottaa/FirebaseRequests/UploadFiles/UploadPhrase.java b/app/src/main/java/com/stonefacesoft/ottaa/FirebaseRequests/UploadFiles/UploadPhrase.java index ebbd5f36..46ee0f38 100644 --- a/app/src/main/java/com/stonefacesoft/ottaa/FirebaseRequests/UploadFiles/UploadPhrase.java +++ b/app/src/main/java/com/stonefacesoft/ottaa/FirebaseRequests/UploadFiles/UploadPhrase.java @@ -22,7 +22,6 @@ public void uploadFile() { openFile(); if (fis.available() > 3) { Log.e("subirArchivosLog", "subirGruposFirebase: " + fis.available()); - mStorageReference.putStream(fis).continueWithTask(task -> { if (!task.isSuccessful()) { throw task.getException(); @@ -49,8 +48,6 @@ public void uploadFile() { } }); } - - } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { diff --git a/app/src/main/java/com/stonefacesoft/ottaa/GaleriaGrupos2.java b/app/src/main/java/com/stonefacesoft/ottaa/GaleriaGrupos2.java index 0a71719e..8681050f 100755 --- a/app/src/main/java/com/stonefacesoft/ottaa/GaleriaGrupos2.java +++ b/app/src/main/java/com/stonefacesoft/ottaa/GaleriaGrupos2.java @@ -46,6 +46,8 @@ import com.stonefacesoft.ottaa.idioma.ConfigurarIdioma; import com.stonefacesoft.ottaa.idioma.myContextWrapper; import com.stonefacesoft.ottaa.utils.Accesibilidad.devices.GaleriaGruposControls; +import com.stonefacesoft.ottaa.utils.ConnectionDetector; +import com.stonefacesoft.ottaa.utils.RequestPersmissionClass; import com.stonefacesoft.ottaa.utils.constants.Constants; import com.stonefacesoft.ottaa.utils.Firebase.AnalyticsFirebase; import com.stonefacesoft.ottaa.utils.IntentCode; @@ -382,7 +384,17 @@ public boolean onOptionsItemSelected(MenuItem item) { Bundle bundle = new Bundle(); bundle.putString(FirebaseAnalytics.Param.ACHIEVEMENT_ID, "Bajar pictogramas"); analyticsFirebase.customEvents("Touch", "Galeria Grupos", "Download Pictograms"); - accionBajarFoto(); + if(ConnectionDetector.isNetworkAvailable(this)){ + RequestPersmissionClass requestPersmissionClass = new RequestPersmissionClass(); + boolean result = requestPersmissionClass.requestImagePermission(this); + if(!result){ + requestPersmissionClass.makeRequestImagePermission(result,this); + }else{ + accionBajarFoto(); + } + } + else + myTTS.mostrarAlerta(getString(R.string.problema_inet)); // subirTodasLasFotos(); return true; @@ -526,16 +538,16 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in if (grantResults[i] != PackageManager.PERMISSION_GRANTED) { //permission not granted mPermission = PackageManager.PERMISSION_DENIED; - } else if (grantResults[i] == PackageManager.PERMISSION_GRANTED) { //permission granted mPermission = PackageManager.PERMISSION_GRANTED; - accionBajarFoto(); } } + if (mPermission == PackageManager.PERMISSION_GRANTED) { accionBajarFoto(); } else if (mPermission == PackageManager.PERMISSION_DENIED) { + showDismissDialog.sendMessage(0); myTTS.mostrarAlerta(getString(R.string.permisos_fotos_denegados)); } diff --git a/app/src/main/java/com/stonefacesoft/ottaa/JSONutils/Json.java b/app/src/main/java/com/stonefacesoft/ottaa/JSONutils/Json.java index 4cf33f95..19762471 100755 --- a/app/src/main/java/com/stonefacesoft/ottaa/JSONutils/Json.java +++ b/app/src/main/java/com/stonefacesoft/ottaa/JSONutils/Json.java @@ -284,7 +284,7 @@ public JSONArray getPhrasesByLanguage(){ return result; } - public void setmJSONArrayTodasLasFrases(JSONArray mJSONArrayTodasLasFrases) { + public synchronized void setmJSONArrayTodasLasFrases(JSONArray mJSONArrayTodasLasFrases) { this.mJSONArrayTodasLasFrases = mJSONArrayTodasLasFrases; } diff --git a/app/src/main/java/com/stonefacesoft/ottaa/Principal.java b/app/src/main/java/com/stonefacesoft/ottaa/Principal.java index 80557a83..408ba4b2 100755 --- a/app/src/main/java/com/stonefacesoft/ottaa/Principal.java +++ b/app/src/main/java/com/stonefacesoft/ottaa/Principal.java @@ -714,7 +714,13 @@ public void loadChildOption(JSONArray opciones, int index, Animation alphaAnimat } else { Log.d(TAG, "loadChildOption: null "); loadOptionValue(index, null); - addOpcionNull(returnOption(index), alphaAnimation); + Handler handler = new Handler(Looper.getMainLooper()); + handler.post(new Runnable() { + @Override + public void run() { + addOpcionNull(returnOption(index), alphaAnimation); + } + }); } } catch (JSONException e) { e.printStackTrace(); @@ -1341,8 +1347,7 @@ public void CargarJson() { if (pictoPadre == null || pictoPadre.getInt("id") == 0) pictoPadre = json.getPictoFromId2(0); cuentaMasPictos = 0; - if(pictoPadre != null) - loadOptions(json, pictoPadre); + loadOptions(json, pictoPadre); } catch (JSONException e) { e.printStackTrace(); } @@ -1396,15 +1401,22 @@ public boolean tocarTeclaAcordeUbicacion(KeyEvent event, int keyCode, int ubic) } private void addOption(JSONObject opcion, PictoView picto, Animation animation) { - if(ValidateContext.isValidContext(this)){ - Pictogram pictogram = new Pictogram(opcion, ConfigurarIdioma.getLanguaje()); - picto.setUpGlideAttatcher(this); - picto.setUpContext(this); - picto.setPictogramsLibraryPictogram(pictogram); - picto.setVisibility(View.VISIBLE); - formatoTransparencia(picto, opcion); - picto.startAnimation(animation); - } + Handler handler = new Handler(Looper.getMainLooper()); + handler.post(new Runnable() { + @Override + public void run() { + if(ValidateContext.isValidContext(getContext())){ + Pictogram pictogram = new Pictogram(opcion, ConfigurarIdioma.getLanguaje()); + picto.setUpGlideAttatcher(getContext()); + picto.setUpContext(getContext()); + picto.setPictogramsLibraryPictogram(pictogram); + picto.setVisibility(View.VISIBLE); + formatoTransparencia(picto, opcion); + picto.startAnimation(animation); + } + } + }); + } /** @@ -2069,6 +2081,8 @@ private void uploadFiles() { if (subirArchivos != null) { subirArchivos.userDataExists(subirArchivos.getmDatabase(user.getmAuth(), "Pictos"), subirArchivos.getmDatabase(user.getmAuth(), "Grupos"), subirArchivos.getmDatabase(user.getmAuth(), "Frases")); } + }else{ + initFirstPictograms(); } } @@ -2216,8 +2230,8 @@ public Progress_dialog_options getFirebaseDialog(){ @Override public void pictogramsAreSorted(JSONArray array) { JSONArray opciones = array; - Handler handler = new Handler(Looper.getMainLooper()); - handler.post(new Runnable() { + ExecutorService executorService = Executors.newSingleThreadExecutor(); + Thread thread = new Thread(new Runnable() { @Override public void run() { Animation alphaAnimation = AnimationUtils.loadAnimation(getApplicationContext(), @@ -2228,6 +2242,8 @@ public void run() { loadChildOption(opciones, 3, alphaAnimation); } }); + executorService.execute(thread); + } @@ -2264,7 +2280,6 @@ protected Void doInBackground(Void... voids) { protected void onPostExecute(Void unused) { super.onPostExecute(unused); user.connectClient(); - initFirstPictograms(); uploadFiles(); initPlaceImplementationClass(); showMenu(); @@ -2287,7 +2302,8 @@ public class loadPictograms implements FailReadPictogramOrigin { public void execute(){ ExecutorService executorService = Executors.newSingleThreadExecutor(); Handler handler = new Handler(Looper.getMainLooper()); - executorService.execute(new Runnable() { + + Thread thread = new Thread(new Runnable() { @Override public void run() { if (json.getmJSONArrayTodosLosPictos() != null && json.getmJSONArrayTodosLosPictos().length() > 0) { @@ -2309,6 +2325,7 @@ public void run() { }); } }); + executorService.execute(thread); } @@ -2326,7 +2343,6 @@ public void setParent(JSONObject parent) { @Override public void loadDialog() { if (pictoPadre != null) { - if(historial==null) loadOptions(json, pictoPadre); // y despues cargamos las opciones con el orden correspondiente used = true; } diff --git a/app/src/main/java/com/stonefacesoft/ottaa/prefs.java b/app/src/main/java/com/stonefacesoft/ottaa/prefs.java index ca8c17b9..689b2ef6 100755 --- a/app/src/main/java/com/stonefacesoft/ottaa/prefs.java +++ b/app/src/main/java/com/stonefacesoft/ottaa/prefs.java @@ -47,6 +47,7 @@ import com.stonefacesoft.ottaa.utils.Handlers.HandlerComunicationClass; import com.stonefacesoft.ottaa.utils.IntentCode; import com.stonefacesoft.ottaa.utils.ObservableInteger; +import com.stonefacesoft.ottaa.utils.RequestPersmissionClass; import com.stonefacesoft.ottaa.utils.constants.Constants; import com.stonefacesoft.ottaa.utils.constants.ConstantsAnalyticsValues; import com.stonefacesoft.ottaa.utils.preferences.PersonalSwitchPreferences; @@ -156,6 +157,8 @@ public class prefs extends PreferenceActivity implements SharedPreferences.OnSha private String message = ""; private FirebaseUtils firebaseUtils; + private RequestPersmissionClass requestPersmissionClass; + @Override @@ -163,6 +166,7 @@ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); analyticsFirebase = new AnalyticsFirebase(this); + requestPersmissionClass = new RequestPersmissionClass(); initComponents(); isConnected(); habilitarFuncionesPremiun(sharedPrefsDefault.getInt("premium", 0)); @@ -362,12 +366,8 @@ public void onSharedPreferenceChanged(SharedPreferences sharedPrefs, String key) boolean b = sharedPrefs.getBoolean(key, false); if (b && mBoolUbicacion.getSummary() == getResources().getString(R.string.pref_desactivado)) { //Check si tenemoslos permisos necesarios para ejecutar el calendario. + if (!requestPersmissionClass.requestLocationPermission(getApplicationContext())) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && ContextCompat - .checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION) - != PackageManager.PERMISSION_GRANTED && ContextCompat - .checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_COARSE_LOCATION) - != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{ //Permisos para poder leer y escribir el calendar Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission diff --git a/app/src/main/java/com/stonefacesoft/ottaa/utils/Pictures/DownloadFirebasePictures.java b/app/src/main/java/com/stonefacesoft/ottaa/utils/Pictures/DownloadFirebasePictures.java index 682927fe..37b4b199 100644 --- a/app/src/main/java/com/stonefacesoft/ottaa/utils/Pictures/DownloadFirebasePictures.java +++ b/app/src/main/java/com/stonefacesoft/ottaa/utils/Pictures/DownloadFirebasePictures.java @@ -3,7 +3,6 @@ import android.Manifest; import android.content.pm.PackageManager; import android.os.Build; -import android.util.Log; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; @@ -17,6 +16,7 @@ import com.stonefacesoft.ottaa.FirebaseRequests.FirebaseUtils; import com.stonefacesoft.ottaa.GaleriaGrupos2; import com.stonefacesoft.ottaa.Interfaces.FirebaseSuccessListener; +import com.stonefacesoft.ottaa.utils.RequestPersmissionClass; import com.stonefacesoft.ottaa.utils.constants.Constants; import com.stonefacesoft.ottaa.utils.preferences.User; @@ -80,8 +80,6 @@ public void requestPermission() { bajar = new bajarFotos(); bajar.setInterfaz(mFbSuccessListenerInterfaz); mDirectorio = new UriFiles(mActivity.getApplicationContext()).dir(); - String[] text = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}; - requestActivityPermission(); } public void setUpDirectory() { @@ -100,20 +98,6 @@ public bajarFotos getBajar() { return bajar; } - public void requestActivityPermission() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && ContextCompat - .checkSelfPermission(mActivity.getApplicationContext(), android.Manifest - .permission.WRITE_EXTERNAL_STORAGE) - != PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission - (mActivity.getApplicationContext(), Manifest.permission.READ_EXTERNAL_STORAGE) - != PackageManager.PERMISSION_GRANTED) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - mActivity.requestPermissions(new String[]{ - android.Manifest.permission.WRITE_EXTERNAL_STORAGE - }, Constants.EXTERNAL_STORAGE); - - } - } - } + } diff --git a/app/src/main/java/com/stonefacesoft/ottaa/utils/RequestPersmissionClass.java b/app/src/main/java/com/stonefacesoft/ottaa/utils/RequestPersmissionClass.java new file mode 100644 index 00000000..8ca9e516 --- /dev/null +++ b/app/src/main/java/com/stonefacesoft/ottaa/utils/RequestPersmissionClass.java @@ -0,0 +1,55 @@ +package com.stonefacesoft.ottaa.utils; + +import android.Manifest; +import android.content.Context; +import android.content.pm.PackageManager; +import android.os.Build; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; + +import com.stonefacesoft.ottaa.utils.constants.Constants; + +public class RequestPersmissionClass { + + + + public boolean requestImagePermission(Context mActivity){ + boolean result = false; + if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.TIRAMISU){ + result = isGranted(mActivity,Manifest.permission.READ_MEDIA_IMAGES); + } + else{ + result =isGranted(mActivity, Manifest.permission.WRITE_EXTERNAL_STORAGE)&&!isGranted(mActivity,Manifest.permission.READ_EXTERNAL_STORAGE); + } + return result; + } + public boolean requestLocationPermission(Context mActivity){ + boolean result = false; + result = isGranted(mActivity,Manifest.permission.ACCESS_FINE_LOCATION)&& isGranted(mActivity,Manifest.permission.ACCESS_COARSE_LOCATION); + return result; + } + + public void makeRequestImagePermission(boolean request, AppCompatActivity mActivity){ + if(!request){ + if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.TIRAMISU){ + if(!isGranted(mActivity,Manifest.permission.READ_MEDIA_IMAGES)) + ActivityCompat.requestPermissions(mActivity,new String[]{Manifest.permission.READ_MEDIA_IMAGES}, Constants.EXTERNAL_STORAGE); + }else{ + mActivity.requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, Constants.EXTERNAL_STORAGE); + } + } + } + + + private int requestPermision(Context appCompatActivity,String name){ + return ContextCompat.checkSelfPermission(appCompatActivity,name); + } + + private boolean isGranted(Context mActivity,String name){ + return requestPermision(mActivity,name)==PackageManager.PERMISSION_GRANTED; + } + + +} diff --git a/app/src/main/java/com/stonefacesoft/ottaa/utils/textToSpeech.java b/app/src/main/java/com/stonefacesoft/ottaa/utils/textToSpeech.java index 5f7618be..aff7edc1 100755 --- a/app/src/main/java/com/stonefacesoft/ottaa/utils/textToSpeech.java +++ b/app/src/main/java/com/stonefacesoft/ottaa/utils/textToSpeech.java @@ -137,7 +137,7 @@ public TextToSpeech getTTS() { public void synthesizeToFile(String Oracion, Bundle params,File file,String id){ if(prepare.getmTTS()!=null) - getTTS().synthesizeToFile(Oracion,params,file,id); + getTTS().synthesizeToFile(Oracion,params,file,id); } public void shutdownTTS(){ diff --git a/app/src/main/java/com/stonefacesoft/ottaa/welcome/SplashActivity.java b/app/src/main/java/com/stonefacesoft/ottaa/welcome/SplashActivity.java index a0d31cef..d2991a0e 100755 --- a/app/src/main/java/com/stonefacesoft/ottaa/welcome/SplashActivity.java +++ b/app/src/main/java/com/stonefacesoft/ottaa/welcome/SplashActivity.java @@ -231,7 +231,7 @@ public class borrarPictos { public void execute(){ Executor executor = Executors.newSingleThreadExecutor(); Handler handler = new Handler(Looper.getMainLooper()); - executor.execute(() -> { + Thread thread = new Thread(()->{ borrarPictosViejos(); handler.post(() -> { mProgressBar.setVisibility(View.GONE); @@ -240,20 +240,20 @@ public void execute(){ finish(); }); }); + executor.execute(thread); } } public class preLoadSplashScreen { - - public void execute(){ Executor executor = Executors.newSingleThreadExecutor(); Handler handler = new Handler(Looper.getMainLooper()); - executor.execute(() -> { + Thread thread = new Thread(()->{ Json.getInstance().setmContext(getApplicationContext()).initJsonArrays(); handler.post(SplashActivity.this::accessDashboard); }); + executor.execute(thread); } } @@ -283,7 +283,7 @@ public sharedPreferencesLoad(Context mContext){ public void execute(){ Executor executor = Executors.newSingleThreadExecutor(); Handler handler = new Handler(Looper.getMainLooper()); - executor.execute(() -> { + Thread thread = new Thread(()->{ sharedPrefsDefault = PreferenceManager.getDefaultSharedPreferences(mContext); if (sharedPrefsDefault.getString(getApplicationContext().getResources().getString(R.string.str_idioma), "en").contains("mainTable")) { sharedPrefsDefault.edit().putString(getString(R.string.str_idioma), Locale.getDefault().getLanguage()).apply(); @@ -300,6 +300,7 @@ public void execute(){ changeName.cambiarPosicion(); handler.post(() -> cargarDatos()); }); + executor.execute(thread); } } @@ -356,6 +357,6 @@ public void hacerAccion(int position){ } public void setVisibleButton(){ if(txtCargando.getVisibility()==View.INVISIBLE||txtCargando.getVisibility()==View.GONE) - txtCargando.setVisibility(View.VISIBLE); + txtCargando.setVisibility(View.VISIBLE); } } diff --git a/app/src/main/res/layout-ldrtl-sw600dp/activity_noti_games.xml b/app/src/main/res/layout-ldrtl-sw600dp/activity_noti_games.xml index 1f0456b8..b65001a9 100755 --- a/app/src/main/res/layout-ldrtl-sw600dp/activity_noti_games.xml +++ b/app/src/main/res/layout-ldrtl-sw600dp/activity_noti_games.xml @@ -122,6 +122,7 @@ android:layout_height="0dp" android:id="@+id/container" layout="@layout/pictos_container" + android:layout_marginTop="@dimen/interpicto_margin" app:layout_constraintTop_toBottomOf="@id/container0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout-ldrtl-sw600dp/activity_principal_v4.xml b/app/src/main/res/layout-ldrtl-sw600dp/activity_principal_v4.xml index ef98e073..f60af943 100755 --- a/app/src/main/res/layout-ldrtl-sw600dp/activity_principal_v4.xml +++ b/app/src/main/res/layout-ldrtl-sw600dp/activity_principal_v4.xml @@ -2,7 +2,6 @@ @@ -12,9 +11,9 @@ android:id="@+id/toolbar" android:layout_width="0dp" android:layout_height="?attr/actionBarSize" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" android:background="@color/NaranjaOTTAA" android:visibility="visible" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" @@ -26,15 +25,15 @@ android:layout_width="0dp" android:layout_height="0dp" android:id="@+id/horizontalScrollView2" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintTop_toBottomOf="@id/toolbar" - custom:layout_constraintBottom_toTopOf="@id/constraintPictos" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@id/toolbar" + app:layout_constraintBottom_toTopOf="@id/constraintPictos" android:layout_marginStart="@dimen/activity_horizontal_margin" android:layout_marginEnd="@dimen/activity_horizontal_margin" android:layout_marginTop="@dimen/activity_vertical_margin" android:layout_marginBottom="@dimen/activity_vertical_margin" - custom:layout_constraintVertical_weight="3"> + app:layout_constraintVertical_weight="3"> - - - - - - - + android:layout_height="0dp" + android:id="@+id/container" + layout="@layout/pictos_container" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintVertical_weight="4" + app:layout_constraintBottom_toBottomOf="parent" + > + @@ -275,12 +232,12 @@ android:layout_width="0dp" android:layout_height="0dp" android:background="@drawable/ic_shape_left_orange" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintHorizontal_weight="1" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintStart_toEndOf="@id/containerBottomMasPictos" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_weight="1" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toEndOf="@id/containerBottomMasPictos" android:layout_marginTop="120dp" - custom:layout_constraintTop_toTopOf="@id/constraintPictos"> + app:layout_constraintTop_toTopOf="@id/constraintPictos"> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/action_share" /> + app:layout_constraintHorizontal_weight="1"> + app:layout_constraintBottom_toTopOf="@id/btnTodosLosPictos" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/action_reiniciar" /> + app:layout_constraintEnd_toStartOf="@id/constraintRightButtons" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintTop_toBottomOf="@id/constraintPictos" + app:layout_constraintHorizontal_weight="6" + app:layout_constraintStart_toEndOf="@id/constraintLeftButtons" + app:layout_constraintVertical_weight="2"> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintEnd_toStartOf="@id/btn_borrar" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@id/btnMasPictos" + app:layout_constraintTop_toTopOf="parent" /> @@ -403,10 +360,10 @@ android:layout_height="0dp" android:background="@android:color/transparent" android:visibility="gone" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintTop_toBottomOf="@id/horizontalScrollView2" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/horizontalScrollView2" /> + app:layout_constraintBottom_toTopOf="@id/containerBottomMasPictos" + app:layout_constraintStart_toEndOf="@id/constraintLeftButtons" /> + app:layout_constraintBottom_toTopOf="@id/containerBottomMasPictos" + app:layout_constraintEnd_toStartOf="@id/constraintRightButtons" /> + app:backgroundTint="@color/FondoApp" + app:fabCustomSize="130dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@id/containerBottomMasPictos"> @@ -458,13 +415,13 @@ android:elevation="20dp" android:src="@drawable/icono_ottaa" android:tint="@color/White" - custom:backgroundTint="@color/NaranjaOTTAA" - custom:fabCustomSize="110dp" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintTop_toTopOf="@id/containerBottomMasPictos" - custom:maxImageSize="100dp"> + app:backgroundTint="@color/NaranjaOTTAA" + app:fabCustomSize="110dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@id/containerBottomMasPictos" + app:maxImageSize="100dp"> @@ -474,20 +431,20 @@ android:visibility="gone" android:id="@+id/floatting_button" android:src="@drawable/ic_touch_app_black_24dp" - custom:maxImageSize="@dimen/sizeFloattingButtonIconMed" + app:maxImageSize="@dimen/sizeFloattingButtonIconMed" android:backgroundTint="@color/color_blue_transparent" - custom:backgroundTint="@color/Black" - custom:borderWidth="2dp" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintTop_toTopOf="parent" /> + app:backgroundTint="@color/Black" + app:borderWidth="2dp" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> @@ -12,9 +11,9 @@ android:id="@+id/toolbar" android:layout_width="0dp" android:layout_height="?attr/actionBarSize" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" android:background="@color/NaranjaOTTAA" android:visibility="visible" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" @@ -26,15 +25,15 @@ android:layout_width="0dp" android:layout_height="0dp" android:id="@+id/horizontalScrollView2" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintTop_toBottomOf="@id/toolbar" - custom:layout_constraintBottom_toTopOf="@id/constraintPictos" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@id/toolbar" + app:layout_constraintBottom_toTopOf="@id/constraintPictos" android:layout_marginStart="@dimen/activity_horizontal_margin" android:layout_marginEnd="@dimen/activity_horizontal_margin" android:layout_marginTop="@dimen/activity_vertical_margin" android:layout_marginBottom="@dimen/activity_vertical_margin" - custom:layout_constraintVertical_weight="3"> + app:layout_constraintVertical_weight="3"> - - - - - - - + android:layout_height="0dp" + android:id="@+id/container" + layout="@layout/pictos_container" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintVertical_weight="4" + app:layout_constraintBottom_toBottomOf="parent" + > + @@ -275,12 +232,12 @@ android:layout_width="0dp" android:layout_height="0dp" android:background="@drawable/ic_shape_left_orange" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintHorizontal_weight="1" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintStart_toEndOf="@id/containerBottomMasPictos" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_weight="1" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toEndOf="@id/containerBottomMasPictos" android:layout_marginTop="120dp" - custom:layout_constraintTop_toTopOf="@id/constraintPictos"> + app:layout_constraintTop_toTopOf="@id/constraintPictos"> + app:layout_constraintBottom_toTopOf="@id/btnTodosLosPictos" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/action_reiniciar" /> + app:layout_constraintHorizontal_weight="1"> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/action_share" /> @@ -360,12 +317,12 @@ android:layout_height="0dp" android:id="@+id/containerBottomMasPictos" android:background="@drawable/ic_shape_bottom_orange" - custom:layout_constraintEnd_toStartOf="@id/constraintRightButtons" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintTop_toBottomOf="@id/constraintPictos" - custom:layout_constraintHorizontal_weight="6" - custom:layout_constraintStart_toEndOf="@id/constraintLeftButtons" - custom:layout_constraintVertical_weight="2"> + app:layout_constraintEnd_toStartOf="@id/constraintRightButtons" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintTop_toBottomOf="@id/constraintPictos" + app:layout_constraintHorizontal_weight="6" + app:layout_constraintStart_toEndOf="@id/constraintLeftButtons" + app:layout_constraintVertical_weight="2"> @@ -391,10 +348,10 @@ android:scaleType="fitCenter" android:src="@drawable/ic_backspace_black_24dp" android:tint="@color/White" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintTop_toTopOf="parent" - custom:layout_constraintEnd_toStartOf="@id/btnMasPictos" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintEnd_toStartOf="@id/btnMasPictos" /> @@ -406,10 +363,10 @@ android:layout_height="0dp" android:background="@android:color/transparent" android:visibility="gone" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintTop_toBottomOf="@id/horizontalScrollView2" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/horizontalScrollView2" /> + app:layout_constraintBottom_toTopOf="@id/containerBottomMasPictos" + app:layout_constraintStart_toEndOf="@id/constraintLeftButtons" /> + app:layout_constraintBottom_toTopOf="@id/containerBottomMasPictos" + app:layout_constraintEnd_toStartOf="@id/constraintRightButtons" /> + app:backgroundTint="@color/FondoApp" + app:fabCustomSize="130dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@id/containerBottomMasPictos"> @@ -461,13 +418,13 @@ android:elevation="20dp" android:src="@drawable/icono_ottaa" android:tint="@color/White" - custom:backgroundTint="@color/NaranjaOTTAA" - custom:fabCustomSize="110dp" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintTop_toTopOf="@id/containerBottomMasPictos" - custom:maxImageSize="100dp"> + app:backgroundTint="@color/NaranjaOTTAA" + app:fabCustomSize="110dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@id/containerBottomMasPictos" + app:maxImageSize="100dp"> @@ -477,19 +434,19 @@ android:visibility="gone" android:id="@+id/floatting_button" android:src="@drawable/ic_touch_app_black_24dp" - custom:maxImageSize="@dimen/sizeFloattingButtonIconMed" + app:maxImageSize="@dimen/sizeFloattingButtonIconMed" android:backgroundTint="@color/color_blue_transparent" - custom:backgroundTint="@color/Black" custom:borderWidth="0dp" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintTop_toTopOf="parent" /> + app:backgroundTint="@color/Black" app:borderWidth="0dp" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - - - - - - - + android:layout_height="0dp" + android:id="@+id/container" + layout="@layout/pictos_container" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintVertical_weight="4" + app:layout_constraintBottom_toBottomOf="parent" + > + + + - + android:layout_height="0dp" + android:id="@+id/container" + layout="@layout/pictos_container" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintVertical_weight="4" + app:layout_constraintBottom_toBottomOf="parent" - + > + - - - @@ -11,15 +10,15 @@ android:layout_width="0dp" android:layout_height="0dp" android:id="@+id/horizontalScrollView2" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintTop_toTopOf="parent" - custom:layout_constraintBottom_toTopOf="@id/constraintPictos" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toTopOf="@id/constraintPictos" android:layout_marginStart="@dimen/activity_horizontal_margin" android:layout_marginEnd="@dimen/activity_horizontal_margin" android:layout_marginTop="@dimen/activity_vertical_margin" android:layout_marginBottom="@dimen/activity_vertical_margin" - custom:layout_constraintVertical_weight="3"> + app:layout_constraintVertical_weight="3"> - - - - - - - + android:layout_height="0dp" + android:id="@+id/container" + layout="@layout/pictos_container" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintVertical_weight="4" + app:layout_constraintBottom_toBottomOf="parent" + > + @@ -260,12 +216,12 @@ android:layout_width="0dp" android:layout_height="0dp" android:background="@drawable/ic_shape_right_orange" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintHorizontal_weight="1" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintStart_toEndOf="@id/containerBottomMasPictos" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_weight="1" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toEndOf="@id/containerBottomMasPictos" android:layout_marginTop="120dp" - custom:layout_constraintTop_toTopOf="@id/constraintPictos"> + app:layout_constraintTop_toTopOf="@id/constraintPictos"> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/action_share" /> + app:layout_constraintHorizontal_weight="1"> + app:layout_constraintBottom_toTopOf="@id/btnTodosLosPictos" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/action_reiniciar" /> + app:layout_constraintEnd_toStartOf="@id/constraintRightButtons" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintTop_toBottomOf="@id/constraintPictos" + app:layout_constraintHorizontal_weight="6" + app:layout_constraintStart_toEndOf="@id/constraintLeftButtons" + app:layout_constraintVertical_weight="2"> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintEnd_toStartOf="@id/btn_borrar" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@id/btnMasPictos" + app:layout_constraintTop_toTopOf="parent" /> @@ -388,10 +344,10 @@ android:layout_height="0dp" android:background="@android:color/transparent" android:visibility="gone" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintTop_toBottomOf="@id/horizontalScrollView2" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/horizontalScrollView2" /> + app:layout_constraintBottom_toTopOf="@id/containerBottomMasPictos" + app:layout_constraintStart_toEndOf="@id/constraintLeftButtons" /> + app:layout_constraintBottom_toTopOf="@id/containerBottomMasPictos" + app:layout_constraintEnd_toStartOf="@id/constraintRightButtons" /> @@ -442,13 +398,13 @@ android:elevation="20dp" android:src="@drawable/icono_ottaa" android:tint="@color/White" - custom:backgroundTint="@color/NaranjaOTTAA" - custom:fabCustomSize="110dp" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintTop_toTopOf="@id/containerBottomMasPictos" - custom:maxImageSize="100dp"> + app:backgroundTint="@color/NaranjaOTTAA" + app:fabCustomSize="110dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@id/containerBottomMasPictos" + app:maxImageSize="100dp"> @@ -458,20 +414,20 @@ android:visibility="gone" android:id="@+id/floatting_button" android:src="@drawable/ic_touch_app_black_24dp" - custom:maxImageSize="@dimen/sizeFloattingButtonIconMed" + app:maxImageSize="@dimen/sizeFloattingButtonIconMed" android:backgroundTint="@color/color_blue_transparent" - custom:backgroundTint="@color/Black" - custom:borderWidth="2dp" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintTop_toTopOf="parent" /> + app:backgroundTint="@color/Black" + app:borderWidth="2dp" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintVertical_weight="3"> - - - - - - - + android:layout_height="0dp" + android:id="@+id/container" + layout="@layout/pictos_container" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintVertical_weight="4" + app:layout_constraintBottom_toBottomOf="parent" + > + @@ -263,12 +220,12 @@ android:layout_width="0dp" android:layout_height="0dp" android:background="@drawable/ic_shape_right_orange" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintHorizontal_weight="1" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintStart_toEndOf="@id/containerBottomMasPictos" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_weight="1" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toEndOf="@id/containerBottomMasPictos" android:layout_marginTop="20dp" - custom:layout_constraintTop_toTopOf="@id/constraintPictos"> + app:layout_constraintTop_toTopOf="@id/constraintPictos"> + app:layout_constraintBottom_toTopOf="@id/btnTodosLosPictos" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/action_reiniciar" /> @@ -305,21 +262,21 @@ android:layout_width="0dp" android:layout_height="0dp" android:background="@drawable/ic_shape_left_orange" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintTop_toTopOf="@id/constraintPictos" - custom:layout_constraintEnd_toStartOf="@id/containerBottomMasPictos" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintTop_toTopOf="@id/constraintPictos" + app:layout_constraintEnd_toStartOf="@id/containerBottomMasPictos" android:layout_marginTop="20dp" - custom:layout_constraintHorizontal_weight="1"> + app:layout_constraintHorizontal_weight="1"> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/action_share" /> @@ -347,12 +304,12 @@ android:layout_height="0dp" android:id="@+id/containerBottomMasPictos" android:background="@drawable/ic_shape_bottom_orange" - custom:layout_constraintEnd_toStartOf="@id/constraintRightButtons" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintTop_toBottomOf="@id/constraintPictos" - custom:layout_constraintHorizontal_weight="6" - custom:layout_constraintStart_toEndOf="@id/constraintLeftButtons" - custom:layout_constraintVertical_weight="2"> + app:layout_constraintEnd_toStartOf="@id/constraintRightButtons" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintTop_toBottomOf="@id/constraintPictos" + app:layout_constraintHorizontal_weight="6" + app:layout_constraintStart_toEndOf="@id/constraintLeftButtons" + app:layout_constraintVertical_weight="2"> @@ -376,10 +333,10 @@ android:scaleType="fitCenter" android:src="@drawable/ic_backspace_black_24dp" android:tint="@color/White" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintTop_toTopOf="parent" - custom:layout_constraintEnd_toStartOf="@id/btnMasPictos" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintEnd_toStartOf="@id/btnMasPictos" /> @@ -391,10 +348,10 @@ android:layout_height="0dp" android:background="@android:color/transparent" android:visibility="gone" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintTop_toBottomOf="@id/horizontalScrollView2" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/horizontalScrollView2" /> + app:layout_constraintBottom_toTopOf="@id/containerBottomMasPictos" + app:layout_constraintStart_toEndOf="@id/constraintLeftButtons" /> + app:layout_constraintBottom_toTopOf="@id/containerBottomMasPictos" + app:layout_constraintEnd_toStartOf="@id/constraintRightButtons" /> + app:backgroundTint="@color/FondoApp" + app:fabCustomSize="130dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@id/containerBottomMasPictos"> @@ -445,13 +402,13 @@ android:elevation="20dp" app:srcCompat="@drawable/icono_ottaa" android:tint="@color/White" - custom:backgroundTint="@color/NaranjaOTTAA" - custom:fabCustomSize="110dp" - custom:layout_constraintBottom_toBottomOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintTop_toTopOf="@id/containerBottomMasPictos" - custom:maxImageSize="100dp"> + app:backgroundTint="@color/NaranjaOTTAA" + app:fabCustomSize="110dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@id/containerBottomMasPictos" + app:maxImageSize="100dp"> @@ -461,19 +418,19 @@ android:visibility="gone" android:id="@+id/floatting_button" android:src="@drawable/ic_touch_app_black_24dp" - custom:maxImageSize="@dimen/sizeFloattingButtonIconMed" + app:maxImageSize="@dimen/sizeFloattingButtonIconMed" android:backgroundTint="@color/color_blue_transparent" - custom:backgroundTint="@color/Black" - custom:borderWidth="2dp" - custom:layout_constraintStart_toStartOf="parent" - custom:layout_constraintEnd_toEndOf="parent" - custom:layout_constraintTop_toTopOf="parent" /> + app:backgroundTint="@color/Black" + app:borderWidth="2dp" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + >