diff --git a/Green_Arrow_Up_Darker.svg b/Green_Arrow_Up_Darker.svg new file mode 100644 index 0000000..2d5ea0d --- /dev/null +++ b/Green_Arrow_Up_Darker.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Red_Arrow_Down.svg b/Red_Arrow_Down.svg new file mode 100644 index 0000000..9b627af --- /dev/null +++ b/Red_Arrow_Down.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index b70dc0e..1f17f45 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "javinator9889.bitcoinpools" minSdkVersion 21 targetSdkVersion 27 - versionCode 36 - versionName "1.18" + versionCode 40 + versionName "1.18-beta" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/app/debug/app-debug.apk b/app/debug/app-debug.apk new file mode 100644 index 0000000..7a16705 Binary files /dev/null and b/app/debug/app-debug.apk differ diff --git a/app/debug/output.json b/app/debug/output.json new file mode 100644 index 0000000..4fc587a --- /dev/null +++ b/app/debug/output.json @@ -0,0 +1 @@ +[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":36},"path":"app-debug.apk","properties":{"packageId":"javinator9889.bitcoinpools","split":"","minSdkVersion":"21"}}] \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8ca34ea..38d453c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,14 +40,16 @@ android:name=".SpinnerActivity" android:configChanges="orientation" android:screenOrientation="portrait" /> - + + android:permission="android.permission.BIND_JOB_SERVICE" + tools:ignore="InnerclassSeparator" /> diff --git a/app/src/main/java/javinator9889/bitcoinpools/BackgroundJobs/CacheJobSchedulerService.java b/app/src/main/java/javinator9889/bitcoinpools/BackgroundJobs/CacheJobSchedulerService.java index 82b41d6..33614ed 100644 --- a/app/src/main/java/javinator9889/bitcoinpools/BackgroundJobs/CacheJobSchedulerService.java +++ b/app/src/main/java/javinator9889/bitcoinpools/BackgroundJobs/CacheJobSchedulerService.java @@ -78,7 +78,7 @@ public boolean onStopJob(JobParameters params) { } private void updateCache() { - String date = new SimpleDateFormat("dd-MM-yyyy", Locale.US).format(Calendar.getInstance().getTime()); + String date = new SimpleDateFormat("dd-MM-yyyy HH:mm", Locale.US).format(Calendar.getInstance().getTime()); CacheManaging cache = CacheManaging.newInstance(BitCoinApp.getAppContext()); try { cache.setupFile(); diff --git a/app/src/main/java/javinator9889/bitcoinpools/BitCoinApp.java b/app/src/main/java/javinator9889/bitcoinpools/BitCoinApp.java index f4ed9a4..715440f 100644 --- a/app/src/main/java/javinator9889/bitcoinpools/BitCoinApp.java +++ b/app/src/main/java/javinator9889/bitcoinpools/BitCoinApp.java @@ -15,6 +15,7 @@ import com.crashlytics.android.Crashlytics; +import java.io.IOException; import java.sql.Time; import java.util.ArrayList; import java.util.Calendar; @@ -34,6 +35,7 @@ public class BitCoinApp extends Application { @SuppressLint("StaticFieldLeak") private static Context APPLICATION_CONTEXT; private static SharedPreferences SHARED_PREFERENCES; + private static boolean isCacheCreated = false; public static Context getAppContext() { return APPLICATION_CONTEXT; @@ -48,20 +50,17 @@ public void onCreate() { APPLICATION_CONTEXT = getApplicationContext(); SHARED_PREFERENCES = getSharedPreferences(Constants.SHARED_PREFERENCES.SHARED_PREFERENCES_KEY, Context.MODE_PRIVATE); initSharedPreferences(); - startBackgroundJobs(); try { - System.out.println(CacheManaging.newInstance(this).readCache()); - } catch (Exception e) { - System.out.println("No cache values found"); + isCacheCreated = CacheManaging.newInstance(this).setupFile(); + } catch (IOException e) { + isCacheCreated = false; } + startBackgroundJobs(); super.onCreate(); Log.d(Constants.LOG.BCTAG, Constants.LOG.CREATED_APP); } private static void startBackgroundJobs() { - JobScheduler globalJobScheduler = (JobScheduler) APPLICATION_CONTEXT.getSystemService(Context.JOB_SCHEDULER_SERVICE); - List pendingJobs = globalJobScheduler != null ? globalJobScheduler.getAllPendingJobs() : new ArrayList(0); - JobScheduler mJobScheduler = (JobScheduler) APPLICATION_CONTEXT.getSystemService(Context.JOB_SCHEDULER_SERVICE); JobInfo.Builder builder = new JobInfo.Builder(1, new ComponentName(APPLICATION_CONTEXT.getPackageName(), JobSchedulerService.class.getName())); @@ -75,22 +74,25 @@ private static void startBackgroundJobs() { Log.e(Constants.LOG.BCTAG, Constants.LOG.NO_INIT + "JobScheduler" + mJobScheduler.getAllPendingJobs().toString()); } - JobScheduler cacheJobScheduler = (JobScheduler) APPLICATION_CONTEXT.getSystemService(Context.JOB_SCHEDULER_SERVICE); - JobInfo.Builder cacheBuilder = new JobInfo.Builder(2, new ComponentName(APPLICATION_CONTEXT.getPackageName(), CacheJobSchedulerService.class.getName())); + if (!(SHARED_PREFERENCES.getBoolean(Constants.SHARED_PREFERENCES.CACHE_JOB, false)) || isCacheCreated) { + JobScheduler cacheJobScheduler = (JobScheduler) APPLICATION_CONTEXT.getSystemService(Context.JOB_SCHEDULER_SERVICE); + JobInfo.Builder cacheBuilder = new JobInfo.Builder(2, new ComponentName(APPLICATION_CONTEXT.getPackageName(), CacheJobSchedulerService.class.getName())); - cacheBuilder.setPeriodic(TimeUnit.DAYS.toMillis(1)); - cacheBuilder.setPersisted(Constants.PERSISTED); - cacheBuilder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY); - cacheBuilder.setBackoffCriteria(Constants.BACKOFF_CRITERIA, JobInfo.BACKOFF_POLICY_LINEAR); + cacheBuilder.setPeriodic(TimeUnit.DAYS.toMillis(1)); + cacheBuilder.setPersisted(Constants.PERSISTED); + cacheBuilder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY); + cacheBuilder.setBackoffCriteria(Constants.BACKOFF_CRITERIA, JobInfo.BACKOFF_POLICY_LINEAR); - if ((pendingJobs.size() != 0) && !(pendingJobs.contains(cacheBuilder.build()))) { assert cacheJobScheduler != null; if (cacheJobScheduler.schedule(cacheBuilder.build()) == JobScheduler.RESULT_FAILURE) { Log.e(Constants.LOG.BCTAG, Constants.LOG.NO_INIT + "JobScheduler" + mJobScheduler.getAllPendingJobs().toString()); + } else { + SharedPreferences.Editor newValueForStartedJob = SHARED_PREFERENCES.edit(); + newValueForStartedJob.putBoolean(Constants.SHARED_PREFERENCES.CACHE_JOB, true); + newValueForStartedJob.apply(); } - } else - System.out.println("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EL JOB YA EXISTE"); + } } private void initSharedPreferences() { diff --git a/app/src/main/java/javinator9889/bitcoinpools/Constants.java b/app/src/main/java/javinator9889/bitcoinpools/Constants.java index c5f5cca..da13fce 100644 --- a/app/src/main/java/javinator9889/bitcoinpools/Constants.java +++ b/app/src/main/java/javinator9889/bitcoinpools/Constants.java @@ -30,6 +30,7 @@ public static final class SHARED_PREFERENCES { public static final String VALUE_TO_CHECK = "value_to_check"; public static final String SHARED_PREFERENCES_INITIALIZED = "initialized"; public static final String APP_VERSION = "APP_VERSION"; + public static final String CACHE_JOB = "CACHE_JOB"; } public static final String CHANNEL_ID = "javinator9889.bitcoinpools.Alerts"; public static final int NOTIFICATION_ID = 1; diff --git a/app/src/main/java/javinator9889/bitcoinpools/DataLoaderScreen.java b/app/src/main/java/javinator9889/bitcoinpools/DataLoaderScreen.java index 2db3e89..055d957 100644 --- a/app/src/main/java/javinator9889/bitcoinpools/DataLoaderScreen.java +++ b/app/src/main/java/javinator9889/bitcoinpools/DataLoaderScreen.java @@ -1,5 +1,6 @@ package javinator9889.bitcoinpools; +import android.annotation.SuppressLint; import android.content.Intent; import android.content.SharedPreferences; import android.os.AsyncTask; @@ -52,7 +53,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { .cancelable(false) .title(R.string.loadingData) .content(R.string.please_wait) - .progress(true, 0) + .progress(false, 100) .build(); progressDialog.show(); new DataLoader().execute(); @@ -60,6 +61,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { } } + @SuppressLint("StaticFieldLeak") class DataLoader extends AsyncTask { private Thread marketPriceThread; private Thread poolsDataThread; @@ -86,7 +88,7 @@ protected void onPostExecute(Boolean result) { activityMainIntent.putExtra("CARDS", cardsData); activityMainIntent.putExtra("BTCPRICE", btcPrice); startActivity(activityMainIntent); - //DataLoaderScreen.this.finish(); + DataLoaderScreen.this.finish(); } else { Log.i("DLS", "Data non-loaded..."); if (progressDialog != null) { @@ -156,6 +158,7 @@ public void run() { }*/ try { mpu = round((float) getHTTPSRequest(Constants.STATS_URL).getDouble(Constants.MARKET_NAME), 2); + progressDialog.setProgress(progressDialog.getCurrentProgress() + 20); } catch (Exception e) { Log.e(Constants.LOG.MATAG, Constants.LOG.MARKET_PRICE_ERROR + e.getMessage()); mpu = -1; @@ -183,6 +186,7 @@ public void run() { }*/ try { retrievedData = JSONTools.convert2HashMap(getHTTPSRequest(url)); + progressDialog.setProgress(progressDialog.getCurrentProgress() + 20); } catch (Exception e) { retrievedData = null; Log.e(Constants.LOG.MATAG, Constants.LOG.DATA_ERROR + e.getMessage()); @@ -209,6 +213,7 @@ public void run() { }*/ try { cardsData = JSONTools.convert2HashMap(getHTTPSRequest(Constants.STATS_URL)); + progressDialog.setProgress(progressDialog.getCurrentProgress() + 20); } catch (Exception e) { cardsData = null; Log.e(Constants.LOG.MATAG, Constants.LOG.DATA_ERROR + e.getMessage()); @@ -233,6 +238,7 @@ public void run() { }*/ try { btcPrice = JSONTools.convert2DateHashMap(getHTTPSRequest(Constants.API_URL).getJSONObject("bpi")); + progressDialog.setProgress(progressDialog.getCurrentProgress() + 20); } catch (Exception e) { btcPrice = null; Log.e(Constants.LOG.MATAG, Constants.LOG.DATA_ERROR + e.getMessage()); diff --git a/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/CardsAdapter.java b/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/CardsAdapter.java index 48ae6fe..9fcc49c 100644 --- a/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/CardsAdapter.java +++ b/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/CardsAdapter.java @@ -16,7 +16,6 @@ import java.util.List; import java.util.Locale; -import javinator9889.bitcoinpools.BitCoinApp; import javinator9889.bitcoinpools.R; /** @@ -76,11 +75,13 @@ public void onBindViewHolder(final MyViewHolder holder, @SuppressLint("RecyclerV String positiveText = "+" + decimalFormat.format(pricePercentage) + "%"; holder.oldData.setText(positiveText); holder.oldData.setTextColor(Color.GREEN); + holder.oldData.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_green_arrow_up_darker, 0, 0, 0); break; case -1: String negativeText = decimalFormat.format(pricePercentage) + "%"; holder.oldData.setText(negativeText); holder.oldData.setTextColor(Color.RED); + holder.oldData.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_red_arrow_down, 0, 0, 0); break; } break; @@ -97,11 +98,13 @@ public void onBindViewHolder(final MyViewHolder holder, @SuppressLint("RecyclerV String positiveText = "+" + decimalFormat.format(powerPercentage) + "%"; holder.oldData.setText(positiveText); holder.oldData.setTextColor(Color.GREEN); + holder.oldData.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_green_arrow_up_darker, 0, 0, 0); break; case -1: String negativeText = decimalFormat.format(powerPercentage) + "%"; holder.oldData.setText(negativeText); holder.oldData.setTextColor(Color.RED); + holder.oldData.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_red_arrow_down, 0, 0, 0); break; } break; @@ -123,11 +126,13 @@ public void onBindViewHolder(final MyViewHolder holder, @SuppressLint("RecyclerV String positiveText = "+" + decimalFormat.format(difficultyPercentage) + "%"; holder.oldData.setText(positiveText); holder.oldData.setTextColor(Color.GREEN); + holder.oldData.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_green_arrow_up_darker, 0, 0, 0); break; case -1: String negativeText = decimalFormat.format(- difficultyPercentage) + "%"; holder.oldData.setText(negativeText); holder.oldData.setTextColor(Color.RED); + holder.oldData.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_red_arrow_down, 0, 0, 0); break; } break; @@ -144,11 +149,13 @@ public void onBindViewHolder(final MyViewHolder holder, @SuppressLint("RecyclerV String positiveText = "+" + decimalFormat.format(blockPercentage) + "%"; holder.oldData.setText(positiveText); holder.oldData.setTextColor(Color.GREEN); + holder.oldData.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_green_arrow_up_darker, 0, 0, 0); break; case -1: String negativeText = decimalFormat.format(blockPercentage) + "%"; holder.oldData.setText(negativeText); holder.oldData.setTextColor(Color.RED); + holder.oldData.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_red_arrow_down, 0, 0, 0); break; } break; @@ -170,11 +177,13 @@ public void onBindViewHolder(final MyViewHolder holder, @SuppressLint("RecyclerV String positiveText = "+" + decimalFormat.format(minutesPercentage) + "%"; holder.oldData.setText(positiveText); holder.oldData.setTextColor(Color.GREEN); + holder.oldData.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_green_arrow_up_darker, 0, 0, 0); break; case -1: String negativeText = decimalFormat.format(minutesPercentage) + "%"; holder.oldData.setText(negativeText); holder.oldData.setTextColor(Color.RED); + holder.oldData.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_red_arrow_down, 0, 0, 0); break; } break; @@ -196,11 +205,13 @@ public void onBindViewHolder(final MyViewHolder holder, @SuppressLint("RecyclerV String positiveText = "+" + decimalFormat.format(feePercentage) + "%"; holder.oldData.setText(positiveText); holder.oldData.setTextColor(Color.GREEN); + holder.oldData.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_green_arrow_up_darker, 0, 0, 0); break; case -1: String negativeText = decimalFormat.format(feePercentage) + "%"; holder.oldData.setText(negativeText); holder.oldData.setTextColor(Color.RED); + holder.oldData.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_red_arrow_down, 0, 0, 0); break; } break; @@ -217,11 +228,13 @@ public void onBindViewHolder(final MyViewHolder holder, @SuppressLint("RecyclerV String positiveText = "+" + decimalFormat.format(transPercentage) + "%"; holder.oldData.setText(positiveText); holder.oldData.setTextColor(Color.GREEN); + holder.oldData.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_green_arrow_up_darker, 0, 0, 0); break; case -1: String negativeText = decimalFormat.format(transPercentage) + "%"; holder.oldData.setText(negativeText); holder.oldData.setTextColor(Color.RED); + holder.oldData.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_red_arrow_down, 0, 0, 0); break; } break; @@ -238,11 +251,13 @@ public void onBindViewHolder(final MyViewHolder holder, @SuppressLint("RecyclerV String positiveText = "+" + decimalFormat.format(benefitPercentage) + "%"; holder.oldData.setText(positiveText); holder.oldData.setTextColor(Color.GREEN); + holder.oldData.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_green_arrow_up_darker, 0, 0, 0); break; case -1: String negativeText = decimalFormat.format(benefitPercentage) + "%"; holder.oldData.setText(negativeText); holder.oldData.setTextColor(Color.RED); + holder.oldData.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_red_arrow_down, 0, 0, 0); break; } break; diff --git a/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/Tab1PoolsChart.java b/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/Tab1PoolsChart.java index 35bf34a..c3d8621 100644 --- a/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/Tab1PoolsChart.java +++ b/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/Tab1PoolsChart.java @@ -33,6 +33,7 @@ import javinator9889.bitcoinpools.BitCoinApp; import javinator9889.bitcoinpools.Constants; +import javinator9889.bitcoinpools.DataLoaderScreen; import javinator9889.bitcoinpools.JSONTools.JSONTools; import javinator9889.bitcoinpools.MainActivity; import javinator9889.bitcoinpools.NetTools.net; @@ -97,6 +98,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, createTable(tableLayout, createdView); try { tableThread.join(); + DataLoaderScreen.progressDialog.setProgress(DataLoaderScreen.progressDialog.getCurrentProgress() + 10); return createdView; } catch (InterruptedException e) { e.printStackTrace(); diff --git a/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/Tab2BTCChart.java b/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/Tab2BTCChart.java index 0518f5c..9b4adae 100644 --- a/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/Tab2BTCChart.java +++ b/app/src/main/java/javinator9889/bitcoinpools/FragmentViews/Tab2BTCChart.java @@ -55,6 +55,7 @@ import javinator9889.bitcoinpools.BitCoinApp; import javinator9889.bitcoinpools.CacheManaging; import javinator9889.bitcoinpools.Constants; +import javinator9889.bitcoinpools.DataLoaderScreen; import javinator9889.bitcoinpools.JSONTools.JSONTools; import javinator9889.bitcoinpools.MainActivity; import javinator9889.bitcoinpools.NetTools.net; @@ -160,6 +161,8 @@ public void onClick(View v) { longPressInfo = getString(R.string.longclick); ((TextView) createdView.findViewById(R.id.longPressInfo)).setText(longPressInfo); return createdView; + } finally { + DataLoaderScreen.progressDialog.setProgress(DataLoaderScreen.progressDialog.getCurrentProgress() + 10); } } diff --git a/app/src/main/java/javinator9889/bitcoinpools/MainActivity.java b/app/src/main/java/javinator9889/bitcoinpools/MainActivity.java index 713f589..6508794 100644 --- a/app/src/main/java/javinator9889/bitcoinpools/MainActivity.java +++ b/app/src/main/java/javinator9889/bitcoinpools/MainActivity.java @@ -69,6 +69,7 @@ public class MainActivity extends AppCompatActivity { //private MaterialDialog progressDialog = null; @Override + @SuppressWarnings("unchecked") protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //if (BitCoinApp.isOnline()) { @@ -114,8 +115,8 @@ protected void onCreate(Bundle savedInstanceState) { } Log.d(Constants.LOG.MATAG, Constants.LOG.INIT_VALUES); - checkPermissions(); - CheckUpdates ck = new CheckUpdates(Constants.GITHUB_USER, Constants.GITHUB_REPO); + //checkPermissions(); + //CheckUpdates ck = new CheckUpdates(Constants.GITHUB_USER, Constants.GITHUB_REPO); SectionsPagerAdapter mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); MAINACTIVITY_TOOLBAR = findViewById(R.id.toolbar); @@ -132,7 +133,8 @@ protected void onCreate(Bundle savedInstanceState) { Log.d(Constants.LOG.MATAG, Constants.LOG.CREATING_CHART); Log.d(Constants.LOG.MATAG, Constants.LOG.LISTENING); - ck.checkForUpdates(this, getString(R.string.updateAvailable), getString(R.string.updateDescrip), getString(R.string.updateNow), getString(R.string.updateLater), getString(R.string.updatePage)); + //ck.checkForUpdates(this, getString(R.string.updateAvailable), getString(R.string.updateDescrip), getString(R.string.updateNow), getString(R.string.updateLater), getString(R.string.updatePage)); + //DataLoaderScreen.progressDialog.setProgress(DataLoaderScreen.progressDialog.getCurrentProgress() + 10); /*} else { new MaterialDialog.Builder(this) .title(R.string.noConnectionTitle) @@ -153,6 +155,7 @@ public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) @Override protected void onResume() { super.onResume(); + //DataLoaderScreen.progressDialog.setProgress(DataLoaderScreen.progressDialog.getCurrentProgress() + 5); DataLoaderScreen.progressDialog.dismiss(); } diff --git a/app/src/main/res/drawable/ic_green_arrow_up_darker.xml b/app/src/main/res/drawable/ic_green_arrow_up_darker.xml new file mode 100644 index 0000000..d9a6424 --- /dev/null +++ b/app/src/main/res/drawable/ic_green_arrow_up_darker.xml @@ -0,0 +1,4 @@ + + + diff --git a/app/src/main/res/drawable/ic_red_arrow_down.xml b/app/src/main/res/drawable/ic_red_arrow_down.xml new file mode 100644 index 0000000..c79329c --- /dev/null +++ b/app/src/main/res/drawable/ic_red_arrow_down.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/bitcoin_card.xml b/app/src/main/res/layout/bitcoin_card.xml index 63f4259..099190e 100644 --- a/app/src/main/res/layout/bitcoin_card.xml +++ b/app/src/main/res/layout/bitcoin_card.xml @@ -9,10 +9,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" - android:layout_marginBottom="@dimen/card_margin" + android:layout_marginBottom="8dp" android:layout_marginEnd="@dimen/card_margin" - android:layout_marginLeft="@dimen/card_margin" - android:layout_marginRight="@dimen/card_margin" android:layout_marginStart="@dimen/card_margin" android:layout_marginTop="8dp" android:elevation="3dp" diff --git a/app/src/main/res/layout/bitcoindata.xml b/app/src/main/res/layout/bitcoindata.xml index 9df5c89..4adbdbc 100644 --- a/app/src/main/res/layout/bitcoindata.xml +++ b/app/src/main/res/layout/bitcoindata.xml @@ -56,12 +56,14 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="16dp" + android:layout_marginEnd="16dp" + android:layout_marginStart="16dp" android:layout_marginTop="8dp" + android:alpha=".7" + android:drawableStart="@drawable/ic_info_outline_black_18dp" android:text="" android:textAlignment="center" android:textStyle="italic" - android:drawableStart="@drawable/ic_info_outline_black_18dp" - android:alpha=".7" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 0484106..476677c 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -178,8 +178,8 @@ Descarga BitCoin Pools, una aplicación para obtener información sobre el BitCoin y más Cargando datos… Obteniendo la última información… Por favor, espera - ¿Te ha parecido útil la app? ¡Motívame a seguir trabjando!\nApóyame con una pequeña donación, te lo agradeceré :D - Google se queda con un 30% de lo que selecciones + ¿Te ha parecido útil la app? ¡Motívame a seguir trabjando!\nApóyame con una pequeña donación, te lo agradeceré :D + Google se queda con un 30% de lo que selecciones ¡Apóyame! Se ha producido un error