diff --git a/.gitignore b/.gitignore
index 0d9d7fb..9f0a6da 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,4 +9,5 @@
.externalNativeBuild
app/src/main/res/values/admob.xml
.idea/markdown-navigator.xml
-.idea/markdown-navigator/
\ No newline at end of file
+.idea/markdown-navigator/
+*.apk
diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
new file mode 100644
index 0000000..96ede7e
Binary files /dev/null and b/.idea/caches/build_file_checksums.ser differ
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..30aa626
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index ba7052b..635999d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -24,7 +24,7 @@
-
+
diff --git a/app/app-release.apk b/app/app-release.apk
deleted file mode 100644
index e082342..0000000
Binary files a/app/app-release.apk and /dev/null differ
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index 1a89fe9..487cbbe 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -23,3 +23,17 @@
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
+
+-keepattributes *Annotation*
+-keepclassmembers class com.google.**.R$* {
+ public static ;
+}
+-keep public class com.google.ads.** {*;}
+-keep public class com.google.android.gms.** {*;}
+-keep public class com.tappx.** { *; }
+
+-ignorewarnings
+
+-keep class * {
+ public private *;
+}
\ No newline at end of file
diff --git a/app/release/output.json b/app/release/output.json
new file mode 100644
index 0000000..c7a4761
--- /dev/null
+++ b/app/release/output.json
@@ -0,0 +1 @@
+[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":278,"versionName":"1.3.2","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f1c3827..b519270 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -24,7 +24,6 @@
-
diff --git a/app/src/main/java/com/jkanetwork/st/calendariodefrases/Config.java b/app/src/main/java/com/jkanetwork/st/calendariodefrases/Config.java
index 610b4aa..6ef3f30 100644
--- a/app/src/main/java/com/jkanetwork/st/calendariodefrases/Config.java
+++ b/app/src/main/java/com/jkanetwork/st/calendariodefrases/Config.java
@@ -28,45 +28,45 @@ public class Config {
return emContext.getSharedPreferences(SHARED_PREFS_FILE, 0);
}
- public Integer getHour(){
+ Integer getHour(){
return getSettings().getInt(KEY_HOUR, 8);
}
- public Integer getMinute(){
+ Integer getMinute(){
return getSettings().getInt(KEY_MINUTE, 0);
}
- public Boolean getNotifOn(){
+ Boolean getNotifOn(){
return getSettings().getBoolean(KEY_NOTIFON, true);
}
- public Boolean getPersistNotifOn(){return getSettings().getBoolean(KEY_PERSISTNOTIFON, false);}
- public Boolean getFirstTime(){return getSettings().getBoolean(KEY_FIRSTTIME, true);}
+ Boolean getPersistNotifOn(){return getSettings().getBoolean(KEY_PERSISTNOTIFON, false);}
+ Boolean getFirstTime(){return getSettings().getBoolean(KEY_FIRSTTIME, true);}
- public void setHour(Integer hour){
+ void setHour(Integer hour){
SharedPreferences.Editor editor = getSettings().edit();
editor.putInt(KEY_HOUR, hour );
editor.apply();
}
- public void setMinute(Integer minute){
+ void setMinute(Integer minute){
SharedPreferences.Editor editor = getSettings().edit();
editor.putInt(KEY_MINUTE, minute );
editor.apply();
}
- public void setNotifOn(Boolean notifon){
+ void setNotifOn(Boolean notifon){
SharedPreferences.Editor editor = getSettings().edit();
editor.putBoolean(KEY_NOTIFON, notifon );
editor.apply();
}
- public void setPersistNotifOn(Boolean notifon){
+ void setPersistNotifOn(Boolean notifon){
SharedPreferences.Editor editor = getSettings().edit();
editor.putBoolean(KEY_PERSISTNOTIFON, notifon );
editor.apply();
}
- public void setFirstTime(Boolean notifon){
+ void setFirstTime(Boolean firstTime){
SharedPreferences.Editor editor = getSettings().edit();
- editor.putBoolean(KEY_FIRSTTIME, notifon );
+ editor.putBoolean(KEY_FIRSTTIME, firstTime );
editor.apply();
}
diff --git a/app/src/main/java/com/jkanetwork/st/calendariodefrases/DatabaseHelper.java b/app/src/main/java/com/jkanetwork/st/calendariodefrases/DatabaseHelper.java
index 1c08c09..eef83fd 100644
--- a/app/src/main/java/com/jkanetwork/st/calendariodefrases/DatabaseHelper.java
+++ b/app/src/main/java/com/jkanetwork/st/calendariodefrases/DatabaseHelper.java
@@ -14,7 +14,7 @@ import java.util.Calendar;
import java.util.List;
public class DatabaseHelper extends SQLiteOpenHelper {
- private static final int DATABASE_VERSION = 10;
+ private static final int DATABASE_VERSION = 11;
private static final String DATABASE_NAME = "database.db";
private final Context contextdb;
@@ -24,7 +24,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
}
/** Return the sentence passing the ID of it */
- public String getFraseFromID(int IDF){
+ String getFraseFromID(int IDF){
SQLiteDatabase db = this.getWritableDatabase();
String sentence;
@@ -46,7 +46,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
}
}
- public String getAutorFromID(int IDF){
+ String getAutorFromID(int IDF){
SQLiteDatabase db = this.getWritableDatabase();
String sentence;
@@ -65,9 +65,22 @@ public class DatabaseHelper extends SQLiteOpenHelper {
}
}
+ /** get fav or a IDFrase */
+ Integer getFav(int IDF){
+ SQLiteDatabase db = this.getWritableDatabase();
+ try{
+ Cursor query = db.rawQuery("SELECT IDFrase FROM frasesFav WHERE IDFrase = '"+IDF+"'", null);
+ Integer ret = query.getCount(); //There is integer because getCount is
+ query.close();
+ return ret;
+ }catch(Exception e){
+ Log.e("Database",e.toString());
+ return 0; //If error, better return not fav
+ }
+ }
/** Add a sentence as favorite */
- public void addFav(int IDF){
+ void addFav(int IDF){
SQLiteDatabase db = this.getWritableDatabase();
try{
db.execSQL("INSERT INTO frasesFav VALUES('"+IDF+"')");
@@ -77,7 +90,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
}
/** Del a favorite sentence */
- public void delFav(int IDF){
+ void delFav(int IDF){
SQLiteDatabase db = this.getWritableDatabase();
try{
db.execSQL("DELETE FROM frasesFav WHERE IDFrase='"+IDF+"'");
@@ -87,7 +100,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
}
/** Returns ID from a day X sentence, if possible */
- public Integer getIDFraseDay(int year,int month,int dayOfMonth){
+ Integer getIDFraseDay(int year,int month,int dayOfMonth){
Calendar cal = Calendar.getInstance();
try {
Integer ret;
@@ -143,14 +156,14 @@ public class DatabaseHelper extends SQLiteOpenHelper {
}
/** Returns ID of today's sentence */
- public Integer getIDFraseHoy(){
+ Integer getIDFraseHoy(){
Calendar cal = Calendar.getInstance();
//Month + 1 because Android starts with month=0
return getIDFraseDay(cal.get(Calendar.YEAR),cal.get(Calendar.MONTH)+1,cal.get(Calendar.DAY_OF_MONTH));
}
/** Returns an array of favorite IDs */
- public Integer[] getIDFavs(){
+ Integer[] getIDFavs(){
SQLiteDatabase db = this.getWritableDatabase();
List a = new ArrayList<>();
@@ -167,7 +180,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
}
/** Returns an array of favorite IDs */
- public String[] getAllDaysYet(){
+ String[] getAllDaysYet(){
SQLiteDatabase db = this.getWritableDatabase();
List a = new ArrayList<>();
diff --git a/app/src/main/java/com/jkanetwork/st/calendariodefrases/FirstStartActivity.java b/app/src/main/java/com/jkanetwork/st/calendariodefrases/FirstStartActivity.java
deleted file mode 100644
index 22b1343..0000000
--- a/app/src/main/java/com/jkanetwork/st/calendariodefrases/FirstStartActivity.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.jkanetwork.st.calendariodefrases;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.view.View;
-
-/**
- * Created by kprkpr on 24/03/17.
- */
-
-public class FirstStartActivity extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_first);
- Config conf = new Config(this);
- conf.setFirstTime(false); /* App opened at least one time */
-
- (findViewById(R.id.btnStart)).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Intent newMA= new Intent(FirstStartActivity.this,MainActivity.class);
- startActivity(newMA);
- }
- });
- }
-
-}
diff --git a/app/src/main/java/com/jkanetwork/st/calendariodefrases/MainActivity.java b/app/src/main/java/com/jkanetwork/st/calendariodefrases/MainActivity.java
index c83b3aa..5d6dbc1 100644
--- a/app/src/main/java/com/jkanetwork/st/calendariodefrases/MainActivity.java
+++ b/app/src/main/java/com/jkanetwork/st/calendariodefrases/MainActivity.java
@@ -1,8 +1,10 @@
package com.jkanetwork.st.calendariodefrases;
+import android.app.AlertDialog;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
@@ -11,17 +13,19 @@ import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
+import com.marcohc.robotocalendar.RobotoCalendarView.RobotoCalendarListener;
+import com.marcohc.robotocalendar.RobotoCalendarView;
+import java.text.DateFormatSymbols;
+import java.util.Calendar;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;
-import com.marcohc.robotocalendar.RobotoCalendarView.RobotoCalendarListener;
-import com.marcohc.robotocalendar.RobotoCalendarView;
-import java.text.DateFormatSymbols;
-import java.util.Calendar;
public class MainActivity extends AppCompatActivity implements RobotoCalendarListener {
@@ -40,6 +44,9 @@ public class MainActivity extends AppCompatActivity implements RobotoCalendarLis
TextView txtfraseTitle;
TextView txtfraseText;
TextView txtfraseAutor;
+ /* More objects of view */
+ ImageButton btnFav;
+ ImageButton btnShare;
@Override
@@ -77,14 +84,25 @@ public class MainActivity extends AppCompatActivity implements RobotoCalendarLis
/* First of all,before loading, see if its the first time using the app */
if (conf.getFirstTime()){
- Intent newFA= new Intent(MainActivity.this,FirstStartActivity.class);
- startActivity(newFA);
+ new AlertDialog.Builder(MainActivity.this)
+ .setTitle("Bienvenido")
+ .setMessage("Bienvenidos a Calendario de Frases, donde cada día disfrutarás de una nueva cita celebre o de un nuevo refrán que podrás guardar o compartir con tus amigos.\nAdemás, podrás poner una notificación para que te avise de la frase del día a la hora que quieras, por ejemplo, al desperarte.\nRecuerda que no puedes ver frases de los días que no hayan pasado aún con la aplicación.\nEsperamos que la disfrutes.")
+ .setCancelable(false)
+ .setPositiveButton("Empecemos", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ // Nothing
+ }
+ }).show();
+ conf.setFirstTime(false); //Only show first time
}
setContentView(R.layout.activity_main);
- txtfraseTitle = (TextView) findViewById(R.id.txt_frasetitle);
- txtfraseText = (TextView) findViewById(R.id.txt_frasetext);
- txtfraseAutor = (TextView) findViewById(R.id.txt_fraseautor);
+ txtfraseTitle = findViewById(R.id.txt_frasetitle);
+ txtfraseText = findViewById(R.id.txt_frasetext);
+ txtfraseAutor = findViewById(R.id.txt_fraseautor);
+ btnFav = findViewById(R.id.btnFav);
+ btnShare = findViewById(R.id.btnShare);
/* Calendar basic settings */
robotoCalendarView = (RobotoCalendarView) findViewById(R.id.calendarPicker);
@@ -96,9 +114,8 @@ public class MainActivity extends AppCompatActivity implements RobotoCalendarLis
MobileAds.initialize(getApplicationContext(), MainActivity.this.getString(R.string.admob_launch_api));
AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
- mAdView.loadAd(adRequest);
+ mAdView.loadAd(adRequest); //request a new ad
- onResume(); /* Here all that as to be refreshed when app opens from background */
/* Configure alarm */
@@ -138,6 +155,39 @@ public class MainActivity extends AppCompatActivity implements RobotoCalendarLis
Toast.makeText(getApplicationContext(), "Copiado al portapapeles", Toast.LENGTH_LONG ).show();
}
});
+ changeFavImage(); //Fav image button
+
+ // SetFavListener
+ btnFav.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View viewIn) {
+ if (db.getFav(IDFrase) == 1){
+ db.delFav(IDFrase);
+ }else {
+ db.addFav(IDFrase);
+ }
+ changeFavImage();
+ }
+ });
+ // ShareListener
+ btnShare.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View viewIn) {
+ String sentence = txtfraseText.getText().toString();
+ Intent intent = new Intent(Intent.ACTION_SEND);
+ intent.setType("text/plain");
+ intent.putExtra(Intent.EXTRA_TEXT, sentence+MainActivity.this.getString(R.string.sharefrom));
+ startActivity(Intent.createChooser(intent, "Compartir con"));
+ }
+ });
+ }
+
+ private void changeFavImage() {
+ if (db.getFav(IDFrase) == 1){
+ btnFav.setBackgroundResource(R.drawable.star_on);
+ }else {
+ btnFav.setBackgroundResource(R.drawable.star_off);
+ }
}
@@ -149,37 +199,6 @@ public class MainActivity extends AppCompatActivity implements RobotoCalendarLis
}
- @Override
- public void onCreateContextMenu(ContextMenu menu, View v,
- ContextMenu.ContextMenuInfo menuInfo) {
- super.onCreateContextMenu(menu, v, menuInfo);
- MenuInflater inflater = getMenuInflater();
- inflater.inflate(R.menu.proverbmenu_add, menu);
- }
-
- @Override
- public boolean onContextItemSelected(MenuItem item) {
- TextView txtfraseText = (TextView) findViewById(R.id.txt_frasetext);
- String sentence = txtfraseText.getText().toString();
- switch (item.getItemId()) {
- case R.id.copy:
- ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
- clipboard.setPrimaryClip(ClipData.newPlainText("Sentence", sentence+MainActivity.this.getString(R.string.sharefrom)));
- Toast.makeText(getApplicationContext(), "Copiado al portapapeles", Toast.LENGTH_LONG ).show();
- return true;
- case R.id.addfav:
- db.addFav(IDFrase);
- return true;
- case R.id.share:
- Intent intent = new Intent(Intent.ACTION_SEND);
- intent.setType("text/plain");
- intent.putExtra(Intent.EXTRA_TEXT, sentence+MainActivity.this.getString(R.string.sharefrom));
- startActivity(Intent.createChooser(intent, "Compartir con"));
- return true;
- }
- return false;
- }
-
@Override
public void onDayClick(Calendar daySelectedCalendar) {
@@ -198,8 +217,13 @@ public class MainActivity extends AppCompatActivity implements RobotoCalendarLis
}else {
txtfraseTitle.setText(R.string.txt_todaysentence); //Change title (today)
}
- //markDates(); TODO El programa borra el día seleccionado al hacerlo
+ changeFavImage(); //For checking fav image
}
+ @Override
+ public void onDayLongClick(Calendar daySelectedCalendar) {
+ onDayClick(daySelectedCalendar);
+ }
+
/** It returns the month name */
public String getMonth(int month) {
@@ -207,11 +231,6 @@ public class MainActivity extends AppCompatActivity implements RobotoCalendarLis
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
- @Override
- public void onDayLongClick(Calendar daySelectedCalendar) {
- onDayClick(daySelectedCalendar);
- }
-
public void markDates() {
robotoCalendarView.clearCalendar();
@@ -219,20 +238,19 @@ public class MainActivity extends AppCompatActivity implements RobotoCalendarLis
String[] IDDays = db.getAllDaysYet();
if (IDDays.length != 0) {
for (int x = 0; x <= IDDays.length - 1; x++) {
- //Log.d("Date", "String: " + String.valueOf(IDDays[x]));
Integer year = Integer.parseInt(IDDays[x].substring(0, 4));
Integer month = Integer.parseInt(IDDays[x].substring(4, 6));
Integer day = Integer.parseInt(IDDays[x].substring(6, 8));
if (year.equals(calYear) && month.equals(calMonth)) {
time.set(Calendar.DAY_OF_MONTH, day);
time.set(Calendar.MONTH, month-1);
- //Log.d("Date", "Marking: " + day);
robotoCalendarView.markCircleImage1(time);
}
}
}
}
+
/* Overrides for month plus and minus */
@Override
public void onRightButtonClick() {
@@ -253,4 +271,5 @@ public class MainActivity extends AppCompatActivity implements RobotoCalendarLis
}
markDates();
}
+
}
\ No newline at end of file
diff --git a/app/src/main/java/com/jkanetwork/st/calendariodefrases/NotificationHelper.java b/app/src/main/java/com/jkanetwork/st/calendariodefrases/NotificationHelper.java
index 859beb4..b042c79 100644
--- a/app/src/main/java/com/jkanetwork/st/calendariodefrases/NotificationHelper.java
+++ b/app/src/main/java/com/jkanetwork/st/calendariodefrases/NotificationHelper.java
@@ -9,7 +9,7 @@ import android.app.Service;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.os.IBinder;
-import android.support.v7.app.NotificationCompat;
+import android.support.v4.app.NotificationCompat;
import android.util.Log;
@@ -48,7 +48,7 @@ public class NotificationHelper extends Service {
CharSequence ticker = "Frase del día";
CharSequence contentTitle = "Frase de hoy:";
CharSequence contentText = db.getFraseFromID(db.getIDFraseHoy());
- NotificationCompat.Builder notibuilder = (android.support.v7.app.NotificationCompat.Builder) new NotificationCompat.Builder(NotificationHelper.this)
+ NotificationCompat.Builder notibuilder = new NotificationCompat.Builder(NotificationHelper.this,"notif")
.setContentIntent(notifIntent)
.setTicker(ticker)
.setContentTitle(contentTitle)
diff --git a/app/src/main/java/com/jkanetwork/st/calendariodefrases/OptsActivity.java b/app/src/main/java/com/jkanetwork/st/calendariodefrases/OptsActivity.java
index cd8a9fa..42b8dec 100644
--- a/app/src/main/java/com/jkanetwork/st/calendariodefrases/OptsActivity.java
+++ b/app/src/main/java/com/jkanetwork/st/calendariodefrases/OptsActivity.java
@@ -114,10 +114,10 @@ public class OptsActivity extends AppCompatActivity {
}
public void setEnabledParts(){
/* I have to set vars again because is out of onCreate */
- Spinner notifHour = (Spinner) findViewById(R.id.spinnerHour);
- Spinner notifMinute = (Spinner) findViewById(R.id.spinnerMinute);
- CheckBox chkalarm = (CheckBox) findViewById(R.id.chk_alarm);
- CheckBox chkpersistent = (CheckBox) findViewById(R.id.chk_persistent);
+ Spinner notifHour = findViewById(R.id.spinnerHour);
+ Spinner notifMinute = findViewById(R.id.spinnerMinute);
+ CheckBox chkalarm = findViewById(R.id.chk_alarm);
+ CheckBox chkpersistent = findViewById(R.id.chk_persistent);
if (chkalarm.isChecked()){
chkpersistent.setEnabled(true);
/* This other checks is chkpersistent checked dependent */
diff --git a/app/src/main/res/drawable/fondo_opts.png b/app/src/main/res/drawable/fondo_opts.png
index 5940e6e..279b42a 100644
Binary files a/app/src/main/res/drawable/fondo_opts.png and b/app/src/main/res/drawable/fondo_opts.png differ
diff --git a/app/src/main/res/drawable/star_off.png b/app/src/main/res/drawable/star_off.png
new file mode 100644
index 0000000..1bccbf3
Binary files /dev/null and b/app/src/main/res/drawable/star_off.png differ
diff --git a/app/src/main/res/drawable/star_on.png b/app/src/main/res/drawable/star_on.png
new file mode 100644
index 0000000..3a7dc0c
Binary files /dev/null and b/app/src/main/res/drawable/star_on.png differ
diff --git a/app/src/main/res/layout/activity_first.xml b/app/src/main/res/layout/activity_first.xml
deleted file mode 100644
index 70057e0..0000000
--- a/app/src/main/res/layout/activity_first.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 71450c1..ec3b55f 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,7 +1,9 @@
-
+ android:layout_marginLeft="48dp"
+ android:layout_marginRight="42dp"
+ android:layout_marginTop="12dp"
+ android:orientation="horizontal">
+
+
+
+
+
+
+
-
-
-
-
\ No newline at end of file
+ android:layout_alignParentBottom="true"
+ ads:adSize="BANNER"
+ ads:adUnitId="@string/banner_ad_unit_id">
+
+
+
diff --git a/app/src/main/res/layout/activity_opts.xml b/app/src/main/res/layout/activity_opts.xml
index f0719bd..261c761 100644
--- a/app/src/main/res/layout/activity_opts.xml
+++ b/app/src/main/res/layout/activity_opts.xml
@@ -1,10 +1,11 @@
+ android:orientation="vertical"
+ android:background="#EBEBEB">
+
+
\ No newline at end of file
diff --git a/app/src/main/res/raw/sqlautores b/app/src/main/res/raw/sqlautores
index 6685467..11837c1 100644
--- a/app/src/main/res/raw/sqlautores
+++ b/app/src/main/res/raw/sqlautores
@@ -1,106 +1,107 @@
-INSERT INTO `autores` VALUES (1,'Jean Cocteau'),
- (2,'Friedrich Nietzsche'),
- (3,'Proverbio Alemán'),
- (4,'Louise L. Hay'),
- (5,'Yoshinori Noguchi'),
- (6,'Publilio Siro'),
- (7,'Isabel de Rumania'),
- (8,'Franklin, B.'),
- (9,'Refrán'),
- (10,'Anaxágoras'),
- (11,'David Hume'),
- (12,'Albert Einstein'),
- (13,'Aristóteles'),
- (14,'George Bernard Shaw'),
- (15,'Lutero'),
- (16,'Pitágoras'),
- (17,'Andrés Holguín'),
- (18,'Juvenal'),
- (19,'Enrique Mariscal'),
- (20,'Anónimo'),
- (21,'San Agustín'),
- (22,'Bertold Brecht'),
- (23,'Santo Tomás'),
- (24,'Anónimo inglés'),
- (25,'Alfred Croiset'),
- (26,'Epícteto'),
- (27,'Victor Hugo'),
- (28,'Steve Jobs'),
- (29,'Proverbio Africano'),
- (30,'Goete'),
- (31,'Rabindranath Tagore'),
- (32,'Napoleón'),
- (33,'Espartaco'),
- (34,'Nicolás Mancini'),
- (35,'Eclesiastés'),
- (36,'Torres y Villarroel'),
- (37,'Luis Rosales'),
- (38,'Arnold'),
- (39,'Pedro Salinas'),
- (40,'Lina Furlan'),
- (41,'Séneca'),
- (42,'R. Burton'),
- (43,'Winston Churchill'),
- (44,'Stuart Chase'),
- (45,'Victoria Farnsworth'),
- (46,'OG Mandino'),
- (47,'José de J. Quintero'),
- (48,'Peterson'),
- (49,'Quevedo'),
- (50,'Cicerón'),
- (51,'Jacinto Benavente'),
- (52,'Henry Fonda'),
- (53,'Carlyle'),
- (54,'José Ingenieros'),
- (55,'Shakespeare'),
- (56,'David Goldber'),
- (57,'Ortega y Gasset'),
- (58,'Miguel Ángel'),
- (59,'E. Cioran'),
- (60,'Buda'),
- (61,'Lord Byron'),
- (62,'Espronceda'),
- (63,'Adolf Hitler'),
- (64,'Mary Lyon'),
- (65,'Oscar Wilde'),
- (66,'Frank Lloyd'),
- (67,'Vincent van Gogh'),
- (68,'Salvador Dalí'),
- (69,'Leonardo da Vinci'),
- (70,'Will Smith'),
- (71,'Nikita Jrushchov'),
- (72,'Platón'),
- (73,'John Maynard Keynes'),
- (74,'Bertrand Russell'),
- (75,'Kevyn Aucoin'),
- (76,'Gandhi'),
- (77,'Jonny Depp'),
- (78,'Margaret Thatcher'),
- (79,'Agatha Christie'),
- (80,'Mario Benedetti'),
- (81,'Proverbio chino'),
- (82,'Noel Clarasó'),
- (83,'Pierre Augustin de Beaumarchais'),
- (84,'Charles Bukowski'),
- (85,'Miguel Delibes'),
- (86,'Thomas A. Edison'),
- (87,'Amit Kalantri'),
- (88,'Paulo Coelho'),
- (89,'Woody Allen'),
- (90,'Enrique Tierno Galván'),
- (91,'Frida Kahlo'),
- (92,'Enrique López Albújar'),
- (93,'James Dean'),
- (94,'Stephen Wright'),
- (95,'Jon Bon Jovi'),
- (96,'Pablo Picasso'),
- (97,'Bill Gates'),
- (98,'Jeff Pesis'),
- (99,'Charles Darwin'),
- (100,'Ralph Waldo Emerson'),
- (101,'Julio Cesar'),
- (102,'Isaac Newton'),
- (103,'Cristóbal Colón'),
+INSERT INTO `autores` VALUES
+(1,'Jean Cocteau'),
+(2,'Friedrich Nietzsche'),
+(3,'Proverbio Alemán'),
+(4,'Louise L. Hay'),
+(5,'Yoshinori Noguchi'),
+(6,'Publilio Siro'),
+(7,'Isabel de Rumania'),
+(8,'Franklin, B.'),
+(9,'Refrán'),
+(10,'Anaxágoras'),
+(11,'David Hume'),
+(12,'Albert Einstein'),
+(13,'Aristóteles'),
+(14,'George Bernard Shaw'),
+(15,'Lutero'),
+(16,'Pitágoras'),
+(17,'Andrés Holguín'),
+(18,'Juvenal'),
+(19,'Enrique Mariscal'),
+(20,'Anónimo'),
+(21,'San Agustín'),
+(22,'Bertold Brecht'),
+(23,'Santo Tomás'),
+(24,'Anónimo inglés'),
+(25,'Alfred Croiset'),
+(26,'Epícteto'),
+(27,'Victor Hugo'),
+(28,'Steve Jobs'),
+(29,'Proverbio Africano'),
+(30,'Goethe'),
+(31,'Rabindranath Tagore'),
+(32,'Napoleón'),
+(33,'Espartaco'),
+(34,'Nicolás Mancini'),
+(35,'Eclesiastés'),
+(36,'Torres y Villarroel'),
+(37,'Luis Rosales'),
+(38,'Arnold'),
+(39,'Pedro Salinas'),
+(40,'Lina Furlan'),
+(41,'Séneca'),
+(42,'R. Burton'),
+(43,'Winston Churchill'),
+(44,'Stuart Chase'),
+(45,'Victoria Farnsworth'),
+(46,'OG Mandino'),
+(47,'José de J. Quintero'),
+(48,'Peterson'),
+(49,'Quevedo'),
+(50,'Cicerón'),
+(51,'Jacinto Benavente'),
+(52,'Henry Fonda'),
+(53,'Carlyle'),
+(54,'José Ingenieros'),
+(55,'Shakespeare'),
+(56,'David Goldber'),
+(57,'Ortega y Gasset'),
+(58,'Miguel Ángel'),
+(59,'E. Cioran'),
+(60,'Buda'),
+(61,'Lord Byron'),
+(62,'Espronceda'),
+(63,'Adolf Hitler'),
+(64,'Mary Lyon'),
+(65,'Oscar Wilde'),
+(66,'Frank Lloyd'),
+(67,'Vincent van Gogh'),
+(68,'Salvador Dalí'),
+(69,'Leonardo da Vinci'),
+(70,'Will Smith'),
+(71,'Nikita Jrushchov'),
+(72,'Platón'),
+(73,'John Maynard Keynes'),
+(74,'Bertrand Russell'),
+(75,'Kevyn Aucoin'),
+(76,'Gandhi'),
+(77,'Jonny Depp'),
+(78,'Margaret Thatcher'),
+(79,'Agatha Christie'),
+(80,'Mario Benedetti'),
+(81,'Proverbio chino'),
+(82,'Noel Clarasó'),
+(83,'Pierre Augustin de Beaumarchais'),
+(84,'Charles Bukowski'),
+(85,'Miguel Delibes'),
+(86,'Thomas A. Edison'),
+(87,'Amit Kalantri'),
+(88,'Paulo Coelho'),
+(89,'Woody Allen'),
+(90,'Enrique Tierno Galván'),
+(91,'Frida Kahlo'),
+(92,'Enrique López Albújar'),
+(93,'James Dean'),
+(94,'Stephen Wright'),
+(95,'Jon Bon Jovi'),
+(96,'Pablo Picasso'),
+(97,'Bill Gates'),
+(98,'Jeff Pesis'),
+(99,'Charles Darwin'),
+(100,'Ralph Waldo Emerson'),
+(101,'Julio Cesar'),
+(102,'Isaac Newton'),
+(103,'Cristóbal Colón'),
(104,'Khalil Gibran'),
(105,'Sigmund Freud'),
(106,'Arquímedes'),
@@ -117,4 +118,17 @@ INSERT INTO `autores` VALUES (1,'Jean Cocteau'),
(117,'Bob Marley'),
(118,'Abraham Lincoln'),
(119,'Carlomagno'),
-(120,'Gengis kan');
+(120,'Gengis kan'),
+(121,'Voltaire'),
+(122,'Andreau Buenafuente'),
+(123,'Juan Carlos de Borbón'),
+(124,'S. Kent'),
+(125,'Francisco Umbral'),
+(126,'Mario Vargas Llosa'),
+(127,'Antonio Machado'),
+(128,'Sofocleto'),
+(129,'Jaume Perich'),
+(130,'Bob Dylan'),
+(131,'Les Luthiers'),
+(132,'William Somerset Maugham'),
+(133,'Groucho Marx');
\ No newline at end of file
diff --git a/app/src/main/res/raw/sqlfrases b/app/src/main/res/raw/sqlfrases
index 8a01631..466b5ac 100644
--- a/app/src/main/res/raw/sqlfrases
+++ b/app/src/main/res/raw/sqlfrases
@@ -1,4 +1,5 @@
-INSERT INTO `frases` VALUES (1,'Un vaso medio vacío de vino es también uno medio lleno, pero una mentira a medias de ningún modo es una media verdad.','1'),
+INSERT INTO `frases` VALUES
+(1,'Un vaso medio vacío de vino es también uno medio lleno, pero una mentira a medias de ningún modo es una media verdad.','1'),
(2,'A menudo la sensualidad apresura el crecimiento del amor, de modo que la raíz queda débil y es fácil de arrancar.','2'),
(3,'Perdonar no es olvidar, y en el perdón sin olvido sobran palabras y falta corazón.','3'),
(4,'Cada vez que decimos; «No sé », nos cerramos la puerta de nuestra propia fuente de sabiduría, que es infinita.','4'),
@@ -122,15 +123,18 @@ INSERT INTO `frases` VALUES (1,'Un vaso medio vacío de vino es también uno med
(122,'Nadie niega a Dios, sino aquel a quien le conviene que Dios no exista.','21'),
(123,'Ver la paja en el ojo ajeno.','9'),
(124,'Quien ama esperando una recompensa está perdiendo el tiempo.','88'),
-(125,'La política es el arte de obtener el dinero de los ricos y el voto de los pobres con el pretexto de proteger a los unos de los otros.','20'), (126,'Los perros tienen pulgas, las personas tienen problemas.','84'),
+(125,'La política es el arte de obtener el dinero de los ricos y el voto de los pobres con el pretexto de proteger a los unos de los otros.','20'),
+(126,'Los perros tienen pulgas, las personas tienen problemas.','84'),
(127,'El alma se conoce por sus actos.','23'),
(128,'El mundo como lo hemos creado es un proceso de nuestro pensamiento. No puede ser cambiado sin cambiar nuestro pensamiento.','12'),
(129,'No cambies la salud por la riqueza, ni la libertad por el poder.','8'),
-(130,'La diferencia entre una democracia y una dictadura consiste en que en la democracia puedes votar antes de obedecer las órdenes.','84'), (131,'No es tarea fácil dirigir a hombres; empujarlos, en cambio, es muy sencillo.','31'),
+(130,'La diferencia entre una democracia y una dictadura consiste en que en la democracia puedes votar antes de obedecer las órdenes.','84'),
+(131,'No es tarea fácil dirigir a hombres; empujarlos, en cambio, es muy sencillo.','31'),
(132,'Reza como si todo dependiera de Dios. Trabaja como si todo dependiera de ti.','21'),
(133,'La posibilidad de realizar un sueño es lo que hace que la vida sea interesante.','88'),
(134,'Un pueblo sin literatura es un pueblo mudo.','85'),
-(135,'El hombre que odia a sus víctimas únicamente odia a quien todavía no ha podido perjudicar.','82'), (136,'Si me das pescado, comeré hoy, si me enseñas a pescar podré comer mañana.','81'),
+(135,'El hombre que odia a sus víctimas únicamente odia a quien todavía no ha podido perjudicar.','82'),
+(136,'Si me das pescado, comeré hoy, si me enseñas a pescar podré comer mañana.','81'),
(137,'Conócete, acéptate, supérate.','21'),
(138,'Asume una virtud si no la tienes.','55'),
(139,'Mi ambición se ve obstaculizada por mi pereza.','84'),
@@ -150,8 +154,9 @@ INSERT INTO `frases` VALUES (1,'Un vaso medio vacío de vino es también uno med
(153,'La vida es como una bicicleta. Para mantener el equilibrio tienes que seguir adelante.','12'),
(154,'El hombre siempre es enemigo natural de otro hombre desconocido. La amistad es un estado de excepción y el amor una excepción rarísima.','82'),
(155,'La honradez reconocida es el más seguro de los juramentos.','8'),
-(156,'Si lloras por haber perdido el sol, las lágrimas no te dejarán ver las estrellas.','31'), (157,'Como una cura para la preocupación, el trabajo es mejor que el whisky.','86'),
-(158,'La verdad, cuando se dice, parece una cosa pequeña e insignificante; sin embargo, por lo que pesa en tu interior, es inmensa y complicadísima.','82'),
+(156,'Si lloras por haber perdido el sol, las lágrimas no te dejarán ver las estrellas.','31'),
+(157,'Como una cura para la preocupación, el trabajo es mejor que el whisky.','86'),
+(158,'La verdad, cuando se dice, parece una cosa pequeña e insignificante; sin embargo, por lo que pesa en tu interior, es inmensa y complicadísima.','82'),
(159,'Hay una razón para que las personas de tu pasado no estén en tu futuro.','88'),
(160,'Una vez al año es lícito hacer locuras.','21'),
(161,'Convertid un árbol en leña y podrá arder para vosotros; pero ya no producirá flores ni frutos.','31'),
@@ -165,8 +170,10 @@ INSERT INTO `frases` VALUES (1,'Un vaso medio vacío de vino es también uno med
(169,'Cuando el deshonor es público, es preciso que también lo sea la venganza.','83'),
(170,'La fragilidad del inocente, fortalece al culpable.','20'),
(171,'El tiempo discurre como el río: no vuelve.','81'),
-(172,'La soberbia no es grandeza sino hinchazón; y lo que está hinchado parece grande pero no está sano.','21'), (173,'Para la cólera y el para el amor, todo lo que se aplaza se pierde.','83'),
-(174,'Sólo una cosa vuelve un sueño imposible: el miedo a fracasar.','88'), (175,'Cuando una medicina no hace daño deberíamos alegrarnos y no exigir además que sirva para algo.','83'),
+(172,'La soberbia no es grandeza sino hinchazón; y lo que está hinchado parece grande pero no está sano.','21'),
+(173,'Para la cólera y el para el amor, todo lo que se aplaza se pierde.','83'),
+(174,'Sólo una cosa vuelve un sueño imposible: el miedo a fracasar.','88'),
+(175,'Cuando una medicina no hace daño deberíamos alegrarnos y no exigir además que sirva para algo.','83'),
(176,'Cuando se habla de estar enamorado como un loco se exagera; en general, se está enamorado como un tonto.','82'),
(177,'Muchos de los fracasos vitales son de gente que no se dieron cuenta lo cerca que estaban del éxito cuando se rindieron.','86'),
(178,'No alcanzas el éxito cuando celebras tus triunfos. Sino cuando superas tus fracasos.','20'),
@@ -183,7 +190,6 @@ INSERT INTO `frases` VALUES (1,'Un vaso medio vacío de vino es también uno med
(189,'La mayor desgracia de la juventud actual es ya no pertenecer a ella.','68'),
(190,'El éxito es caer nueve veces y levantarse diez.','95'),
(191,'Sueña como si fueras a vivir para siempre, vive como si fueras a morir hoy.','93'),
-
(192,'El propósito del arte es el lavado del polvo de la vida cotidiana de nuestras almas.','96'),
(193,'La bebida engendra tristezas pensativas de elefante o alegrías ruidosas de mono.','92'),
(194,'La ciencia daña tanto a los que no saben servirse de ella, cuanto es útil a los demás.','10'),
@@ -287,4 +293,54 @@ INSERT INTO `frases` VALUES (1,'Un vaso medio vacío de vino es también uno med
(292,'Del hablador he aprendido a callar; del intolerante, a ser indulgente, y del malévolo a tratar a los demás con amabilidad. Y por curioso que parezca, no siento ninguna gratitud hacia esos maestros.','104'),
(293,'Convendría sentir menos curiosidad por las personas y más por las ideas.','113'),
(294,'Los instintos naturales se pierden en estado doméstico.','99'),
-(295,'En las horas de peligro es cuando la patria conoce el quilate de sus hijos.','50');
+(295,'En las horas de peligro es cuando la patria conoce el quilate de sus hijos.','50'),
+(296,'Para solucionar el problema de la vista cansada basta con mirar una cama durante diez minutos o una silla durante veinte.','129'),
+(297,'El gilipollas por definición lo es de cuerpo entero. Se es gilipollas como se es pícnico, barbero, coronel, sastre, canónigo o notario: de una manera genérica y vocacional.','125'),
+(298,'La incertidumbre es una margarita cuyos pétalos no se terminan jamás de deshojar.','126'),
+(299,'Nunca subo a una balanza porque sé que me va a pesar.','128'),
+(300,'Hay quienes sólo utilizan las palabras para disfrazar sus pensamientos.','121'),
+(301,'Seguiré dando guerra mientras el cuerpo aguante.','123'),
+(302,'Los indios no eran los únicos con pluma por el lejano oeste.','122'),
+(303,'La gloria, la fama, la unanimidad es un espejismo. Siempre parecen más brillantes en otro.','125'),
+(304,'Converso con el hombre que siempre va conmigo. Quien habla solo, espera hablar con Dios un día.','127'),
+(305,'La psiquiatría es el único negocio donde el cliente nunca tiene la razón.','124'),
+(306,'Lo importante no es saber, sino tener el teléfono del que sabe.','131'),
+(307,'A las cuatro de la mañana nunca se sabe si es demasiado tarde o demasiado temprano.','128'),
+(308,'El mal educado cena ejecutando un concierto de sopa.','128'),
+(309,'Lo que le concedemos a la memoria quizá se lo quitamos a la especulación.','125'),
+(310,'El que lo piensa todo primero, no escribe nada después.','125'),
+(311,'No soy un completo inútil. Por lo menos sirvo de mal ejemplo.','131'),
+(312,'Quienes creen que el dinero lo hace todo, terminan haciendo todo por dinero.','121'),
+(313,'La ignorancia afirma o niega rotundamente; la ciencia duda.','121'),
+(314,'No te tomes la vida en serio, al fin y al cabo no saldrás vivo de ella.','131'),
+(315,'Tener la conciencia limpia es síntoma de mala memoria.','131'),
+(316,'Me gustan los reincidentes porque no cambian de idea.','128'),
+(317,'Acepto el caos, pero no estoy seguro de que el caos me acepte a mí.','130'),
+(318,'Nadie es libre. Hasta los pájaros están encadenados al cielo.','130'),
+(319,'Hay un mundo mejor, pero es carísimo.','122'),
+(320,'Una guerra es el fracaso de la razón.','122'),
+(321,'Se puede aprender mucho sobre el amor en el cine... si no nos distrae la película.','20'),
+(322,'A veces no basta con saber qué significan las cosas, a veces tienes que saber qué no significan.','130'),
+(323,'El talento no se destruye, se transforma y sobrevive a los artistas.','122'),
+(324,'La gente no busca razones para hacer lo que quiere hacer, busca excusas.','132'),
+(325,'Sólo quien ha comido ajo puede darnos una palabra de aliento.','128'),
+(326,'Qué desagradable resulta caerle bien a la gente que te cae mal.','129'),
+(327,'En tiempos de hipocresía, cualquier sinceridad parece cinismo.','132'),
+(328,'Si el dinero pudiera hablar me diría Adiós.','132'),
+(329,'Cuando sólo se piensa en el pasado, es que no se tiene futuro.','132'),
+(330,'El que revela el secreto de otros pasa por traidor; el que revela el propio secreto pasa por imbécil.','121'),
+(331,'A un tontaina le dijeron que su mujer lo engañaba con su mejor amigo, y mato al perro.','131'),
+(332,'Dios hizo el mundo en seis días. Hasta el momento nadie se ha podido explicar a qué venía tanta prisa. Así ha quedado como ha quedado.','129'),
+(333,'Mis amigos me dicen que soy muy agresivo, pero me lo dicen a gritos.','129'),
+(334,'La gente te pide críticas, pero en realidad sólo quiere halagos.','132'),
+(335,'Tres clases hay de ignorantes: no saber lo que debiera saberse, saber mal lo que se sabe, y saber lo que no debiera saberse.','132'),
+(336,'Un filósofo es un tipo que sube a una cumbre en busca del sol; encuentra niebla, desciende y explica el magnífico espectáculo que ha visto.','132'),
+(337,'El dolor une, a veces, pero no enseña a vivir.','132'),
+(338,'El amor, si no es pasión, no es amor, sino otra cosa; y la pasión se alimenta menos de satisfacción que de obstáculos.','132'),
+(339,'Optimista es aquél que cree poder resolver un atasco de tráfico tocando el claxon.','20'),
+(340,'Los avaros se mueren sin dar el último suspiro.','128'),
+(341,'El embarazo es la concepción que confirma la regla.','128'),
+(342,'La inteligencia me persigue pero yo soy más rápido.','133'),
+(343,'Buscamos la felicidad, pero sin saber dónde, como los borrachos buscan su casa, sabiendo que tienen una.','121'),
+(344,'Hay dos tipos de patriotas: el que ama a su país y el que ama al gobierno de su país. Lógicamente los gobiernos consideran más patriotas a estos últimos.','129'),
+(345,'Un optimista es el que cree que todo tiene arreglo. Un pesimista es el que piensa lo mismo, pero sabe que nadie va a intentarlo.','129');
\ No newline at end of file
diff --git a/app/version.count b/app/version.count
index 924c14d..e959677 100644
--- a/app/version.count
+++ b/app/version.count
@@ -1,2 +1,2 @@
-#Sun Dec 17 00:34:30 CET 2017
-VERSION_CODE=188
+#Sun Apr 01 19:07:48 CEST 2018
+VERSION_CODE=278
diff --git a/build.gradle b/build.gradle
index 39cd812..593ac05 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,7 @@ buildscript {
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.0.1'
+ classpath 'com.android.tools.build:gradle:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
@@ -18,6 +18,7 @@ allprojects {
repositories {
jcenter()
maven { url 'https://jitpack.io' }
+ google()
}
}
diff --git a/gradle.properties b/gradle.properties
index cb05675..aac7c9b 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -10,7 +10,6 @@
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
-android.enableAapt2=false
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 7e1371c..75a0b83 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Sat Sep 02 14:54:12 CEST 2017
+#Sun Apr 01 18:46:41 CEST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip