diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..631283e --- /dev/null +++ b/.gitignore @@ -0,0 +1,48 @@ +.DS_Store + +# Built application files +*.apk +*.ap_ + +# Files for the Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ +out/ +build/ +.gradle/ + +# Gradle files +.gradle/ +.idea +build/ + +# Local configuration file (sdk path, etc) +local.properties +keystore.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log + +# Idea project files +*.iml +.idea +*.iws + +# Eclipse project files +default.properties +.metadata +.settings +.project +.classpath + +# Junk +.DS_Store diff --git a/README.md b/README.md index e69de29..0301590 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,238 @@ +LolliPin [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-LolliPin-brightgreen.svg?style=flat)](https://android-arsenal.com/details/1/1425) +================ + +A Lollipop material design styled android pincode library (API 14+) + + +To include in your project, add this to your build.gradle file: + +``` + //Lollipin + compile ('com.github.orangegangsters:lollipin:2.0.0@aar') { + transitive = true + } +``` +Starting from version 2.1.0 we will have a different package name: + +``` + //Lollipin + compile ('com.github.omadahealth:lollipin:2.1.0@aar') { + transitive = true + } +``` + +![Demo](app/src/main/res/raw/github_gif.gif) ![Demo](app/src/main/res/raw/github_gif2.gif) + +======== +### By +Developers: + [Olivier Goutay](https://github.com/olivierg13) and [Stoyan Dimitrov](https://github.com/StoyanD) and [Dae Park](https://github.com/daespark) + +Contributors: + [Art Beatte IV](https://github.com/abeatte), [Alex Morgan](https://github.com/axemorgan) + +Designers: + [Yassine Bentaieb](http://yassinebentaieb.com/) + +======== +### Security + +##### Password protection +The password itself is not saved, only its hash using the SHA-1 algorithm. +This hash is then saved on the SharedPreferences, allowing to verify that the user entered the right PinCode, +without giving the possibility to retrieve it. + +##### Introducing Fingerprint +Once the user has enabled the password, he can also use his fingerprint scanner (using Google Api, not Samsung) +to unlock his device. + +======== +### Usage + +If you want an example on how to use it, you can find an example app in this repo. + +======== +#### Preparing dependencies + +We are using a custom version of RippleView that contains a RippleAnimationListener. +In order to be able to fetch this dependency, you need to add these lines into your main build.gradle file: +``` +allprojects { + repositories { + maven{ + url "https://github.com/omadahealth/omada-nexus/raw/master/release" + } + jcenter() + + } +} +``` + +======== +#### Overriding the AppLockActivity + +In order to use the "Forgot" system, we let you extend the AppLockActivity class to provide your own way of handling the user behaviour in this case (logout, delete datas etc...) + +``` +public class CustomPinActivity extends AppLockActivity { + @Override + public void showForgotDialog() { + //Launch your popup or anything you want here + } +} +``` + +======== +#### Init + +Advised to be done by extending the Application, but can be done elsewhere. The method below provides a way to enable or disable the PinCode system: + +======== +##### Enabling + +``` +LockManager lockManager = LockManager.getInstance(); +lockManager.enableAppLock(this, CustomPinActivity.class); +``` +Once enabled, you must extend "PinActivity" for every Activity you wish to protect. + +======== +##### Disabling + +``` +LockManager lockManager = LockManager.getInstance(); +lockManager.disableAppLock(); +``` + +======== +#### Set up the PinCode + +Whenever you want the user to set up his pin code, you need to request: + +``` +Intent intent = new Intent(MainActivity.this, CustomPinActivity.class); +intent.putExtra(AppLock.EXTRA_TYPE, AppLock.ENABLE_PINLOCK); +startActivityForResult(intent, REQUEST_CODE_ENABLE); +``` + +======== +#### Unlock system + +As soon as you enable the PinCode system, the Unlock screen will appear by itself when the user resume the app after a defined timeout. +Please refer to the next section to know how to customize these values. + +======== +### Customization + +Some features are customizable: + +The unlock timeout: +------------------- + +``` +LockManager lockManager = LockManager.getInstance(); +lockManager.getAppLock().setTimeout(10000); +``` + +The pin length required: +------------------- + +``` +public class CustomPinActivity extends AppLockActivity { + + ... + ... + + @Override + public int getPinLength() { + return 5; + } + + ... + ... +} +``` + +The logo displayed at the top of the page: +------------------- + +``` +LockManager lockManager = LockManager.getInstance(); +lockManager.getAppLock().setLogoId(R.drawable.security_lock); +``` + +The ignored activities: +------------------- +For instance you got a login activity that you want to avoid getting the lock screen, you can ignore this activity by doing: + +``` +LockManager lockManager = LockManager.getInstance(); +lockManager.getAppLock().addIgnoredActivity(NotLockedActivity.class); +``` + +The AppLockActivity Layout: +------------------- +By providing a custom layout to getContentView() you can alter how your AppLockActivity looks. +However, you must include 4 required elements: +- TextView with an id of pin_code_step_textview +- TextView with an id of pin_code_forgot_textview +- PinCodeRoundView with an id of pin_code_round_view +- KeyboardView with an id of pin_code_keyboard_view + +``` +@Override + public int getContentView() { + return R.layout.activity_pin; + } +``` + +The Pin Dots: +------------------- +By supplying alternate drawable resources for app:lp_empty_pin_dot and app:lp_full_pin_dot you can custimize how it looks. + +``` + +``` + +======== + +### Credits + +* We used the RippleEffect library from Traex (https://github.com/traex/RippleEffect) to implement the Ripple effect from material design on API 10+ +* We used the L-dialogs library from lewisjdeane (https://github.com/lewisjdeane/L-Dialogs) to demonstrate how to use a popup for the "forgot" button +* We used the Robotium library from RobotiumTech (https://github.com/RobotiumTech/robotium) to run powerful unit and functional testing + +======== + +### License + +``` +The MIT License (MIT) + +Copyright (c) 2015 OrangeGangsters + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6d216ad..6e1523c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ - + = Build.VERSION_CODES.O) { +// scheduleNotification(getNotification("Time is over!!"), timeCountInMilliSeconds); +// } + } + + /** + * method to set the alarm + * + * @param notification + * @param delay + */ +// private void scheduleNotification(Notification notification, long delay) { +// if (Build.VERSION.SDK_INT < 26) { +// return; +// } +// +// Intent notificationIntent = new Intent(this, NotificationPublisher.class); +// notificationIntent.putExtra(NotificationPublisher.NOTIFICATION_ID, 1); +// notificationIntent.putExtra(NotificationPublisher.NOTIFICATION, notification); +// PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); +// +// long futureInMillis = System.currentTimeMillis() + delay; +// +// AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); +// alarmManager.setExact(AlarmManager.RTC_WAKEUP, futureInMillis, pendingIntent); +// +// } + + + /** + * method to creating notification + */ + @RequiresApi(api = Build.VERSION_CODES.O) + private Notification getNotification(String content) { + Intent notificationIntent = new Intent(this, MainActivity.class); + //notificationIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); + //notificationIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + + PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); + Notification builder = new Notification.Builder(this, "default") + .setContentTitle("Pomodoro") + .setContentText(content) + .setAutoCancel(true) + .setContentIntent(contentIntent) + .setVibrate(new long[]{500, 500, 500, 500, 500}) + .setSmallIcon(R.mipmap.icontomato).getNotification(); + return builder; + } + + + /** + * method check break and work duration + */ + public void checkBreakOrWork() { + if (breakCount != 8) { + if (breakOrWork) { + breakAlert(); + // System.out.println("************************ break"); + } else if (!breakOrWork) { + workAlert(); + // System.out.println("************************ work"); + } else { + Toast.makeText(getApplicationContext(), "Finish", Toast.LENGTH_LONG).show(); + } + } else { + Toast.makeText(getApplicationContext(), "Pomodoro is over", Toast.LENGTH_LONG).show(); + reset(); + + } + + } + + /** + * method to show alert take a break + */ + public void breakAlert() { + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(LockedCompatActivity.this); + alertDialogBuilder.setMessage("Good job! Would you like to take a break"); + + alertDialogBuilder.setPositiveButton("No", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface arg0, int arg1) { + workstartStop(); + } + }); + + alertDialogBuilder.setNegativeButton("Take a break", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + breakStartStop(); + } + }); + + AlertDialog alertDialog = alertDialogBuilder.create(); + alertDialog.setCanceledOnTouchOutside(false); + alertDialog.show(); + } + + /** + * method to show alert take a break + */ + public void workAlert() { + AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(LockedCompatActivity.this); + alertDialogBuilder.setMessage("The break is over! Now working time"); + alertDialogBuilder.setPositiveButton("Continue", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface arg0, int arg1) { + workstartStop(); + } + }); + + alertDialogBuilder.setNegativeButton("Finish", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + reset(); + } + }); + + AlertDialog alertDialog = alertDialogBuilder.create(); + alertDialog.setCanceledOnTouchOutside(false); + alertDialog.show(); + } + + /** + * method to start and stop count down timer break + */ + private void breakStartStop() { + breakOrWork = false; + if (timerStatus == TimerStatus.STOPPED) { + + // call to initialize the timer values + BreakSetTimerValues(); + // call to initialize the progress bar values + setProgressBarValues(); + // showing the break icon + imageViewBreak.setVisibility(View.VISIBLE); + // showing the reset icon + imageViewReset.setVisibility(View.VISIBLE); + // changing play icon to stop icon + imageViewStartStop.setImageResource(R.mipmap.icon_pause); + // making edit text not editable + // changing the timer status to started + timerStatus = TimerStatus.STARTED; + // call to start the count down timer + startCountDownTimer(); + + } else { + breakCount = 0; + // changing stop icon to start icon + imageViewStartStop.setImageResource(R.mipmap.icon_start); + // changing the timer status to stopped + timerStatus = TimerStatus.STOPPED; + stopCountDownTimer(); + + } + + } + + /** + * method to stop count down timer + */ + private void stopCountDownTimer() { + countDownTimer.cancel(); + } + + /** + * method to set circular progress bar values + */ + private void setProgressBarValues() { + + progressBarCircle.setMax((int) timeCountInMilliSeconds / 1000); + progressBarCircle.setProgress((int) timeCountInMilliSeconds / 1000); + } + + + /** + * method to convert millisecond to time format + * + * @param milliSeconds + * @return HH:mm:ss time formatted string + */ + private String hmsTimeFormatter(long milliSeconds) { + + String hms = String.format("%02d:%02d:%02d", + TimeUnit.MILLISECONDS.toHours(milliSeconds), + TimeUnit.MILLISECONDS.toMinutes(milliSeconds) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(milliSeconds)), + TimeUnit.MILLISECONDS.toSeconds(milliSeconds) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(milliSeconds))); + + return hms; + + } + + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.menu_main, menu); + + return true; + } + + /** + * method to get profile pic. and name + */ + + +// @Override +// public boolean onOptionsItemSelected(MenuItem item) { +// if (actionBarDrawerToggle.onOptionsItemSelected(item)) { +// return true; +// } +// if (item.getItemId() == R.id.action_settings) { +// Intent settingsIntent = new Intent(getApplicationContext(), Settings.class); +// startActivity(settingsIntent); +// return true; +// } +// if (item.getItemId() == R.id.question) { +// Intent questionIntent = new Intent(getApplicationContext(), Questions.class); +// startActivity(questionIntent); +// return true; +// } +// return super.onOptionsItemSelected(item); +// } } diff --git a/app/src/main/res/drawable-mdpi/actionbar_background.xml b/app/src/main/res/drawable-mdpi/actionbar_background.xml new file mode 100644 index 0000000..f3e6c2d --- /dev/null +++ b/app/src/main/res/drawable-mdpi/actionbar_background.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-mdpi/drawable-v24/drawable-mdpi — skrót.lnk b/app/src/main/res/drawable-mdpi/drawable-v24/drawable-mdpi — skrót.lnk new file mode 100644 index 0000000..fd683e2 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/drawable-v24/drawable-mdpi — skrót.lnk differ diff --git a/app/src/main/res/drawable-mdpi/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-mdpi/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..c7bd21d --- /dev/null +++ b/app/src/main/res/drawable-mdpi/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable-mdpi/drawable/actionbar_background.xml b/app/src/main/res/drawable-mdpi/drawable/actionbar_background.xml new file mode 100644 index 0000000..f3e6c2d --- /dev/null +++ b/app/src/main/res/drawable-mdpi/drawable/actionbar_background.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-mdpi/drawable/drawable_circle_green.xml b/app/src/main/res/drawable-mdpi/drawable/drawable_circle_green.xml new file mode 100644 index 0000000..bcaf7e0 --- /dev/null +++ b/app/src/main/res/drawable-mdpi/drawable/drawable_circle_green.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-mdpi/drawable/drawable_circle_red.xml b/app/src/main/res/drawable-mdpi/drawable/drawable_circle_red.xml new file mode 100644 index 0000000..1220fa8 --- /dev/null +++ b/app/src/main/res/drawable-mdpi/drawable/drawable_circle_red.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-mdpi/drawable/ic_launcher_background.xml b/app/src/main/res/drawable-mdpi/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..01f0af0 --- /dev/null +++ b/app/src/main/res/drawable-mdpi/drawable/ic_launcher_background.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-mdpi/drawable_circle_green.xml b/app/src/main/res/drawable-mdpi/drawable_circle_green.xml new file mode 100644 index 0000000..bcaf7e0 --- /dev/null +++ b/app/src/main/res/drawable-mdpi/drawable_circle_green.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-mdpi/drawable_circle_red.xml b/app/src/main/res/drawable-mdpi/drawable_circle_red.xml new file mode 100644 index 0000000..1220fa8 --- /dev/null +++ b/app/src/main/res/drawable-mdpi/drawable_circle_red.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-mdpi/ic_launcher_background.xml b/app/src/main/res/drawable-mdpi/ic_launcher_background.xml new file mode 100644 index 0000000..01f0af0 --- /dev/null +++ b/app/src/main/res/drawable-mdpi/ic_launcher_background.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-mdpi/ic_launcher_foreground.xml b/app/src/main/res/drawable-mdpi/ic_launcher_foreground.xml new file mode 100644 index 0000000..c7bd21d --- /dev/null +++ b/app/src/main/res/drawable-mdpi/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_compat_locked.xml b/app/src/main/res/layout/activity_compat_locked.xml index ee14966..b2dcb81 100644 --- a/app/src/main/res/layout/activity_compat_locked.xml +++ b/app/src/main/res/layout/activity_compat_locked.xml @@ -1,20 +1,138 @@ - + + + - + + + + + + + + + + + + + + + + + + + + android:layout_height="match_parent" + android:background="@color/colorTextSize"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..c4a603d --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000..c4a603d --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..69a8427 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_background.png b/app/src/main/res/mipmap-hdpi/ic_launcher_background.png new file mode 100644 index 0000000..5cea235 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_background.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..773086d Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..548589d Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..0f1f73b Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_background.png b/app/src/main/res/mipmap-mdpi/ic_launcher_background.png new file mode 100644 index 0000000..b0d4a8c Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_background.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..7777376 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..50383b5 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xhdpi/about.png b/app/src/main/res/mipmap-xhdpi/about.png new file mode 100644 index 0000000..94040cb Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/about.png differ diff --git a/app/src/main/res/mipmap-xhdpi/account.png b/app/src/main/res/mipmap-xhdpi/account.png new file mode 100644 index 0000000..58c63ea Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/account.png differ diff --git a/app/src/main/res/mipmap-xhdpi/alarm.png b/app/src/main/res/mipmap-xhdpi/alarm.png new file mode 100644 index 0000000..11d9999 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/alarm.png differ diff --git a/app/src/main/res/mipmap-xhdpi/alarm_clock.png b/app/src/main/res/mipmap-xhdpi/alarm_clock.png new file mode 100644 index 0000000..de13370 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/alarm_clock.png differ diff --git a/app/src/main/res/mipmap-xhdpi/alarmclock.png b/app/src/main/res/mipmap-xhdpi/alarmclock.png new file mode 100644 index 0000000..b027c33 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/alarmclock.png differ diff --git a/app/src/main/res/mipmap-xhdpi/hamburgermenu.png b/app/src/main/res/mipmap-xhdpi/hamburgermenu.png new file mode 100644 index 0000000..cccf0d7 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/hamburgermenu.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..1176ea5 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png new file mode 100644 index 0000000..61bc4dc Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..bb50a53 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..f87a305 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xhdpi/icon_break.png b/app/src/main/res/mipmap-xhdpi/icon_break.png new file mode 100644 index 0000000..08285ad Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icon_break.png differ diff --git a/app/src/main/res/mipmap-xhdpi/icon_break_b.png b/app/src/main/res/mipmap-xhdpi/icon_break_b.png new file mode 100644 index 0000000..a24733a Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icon_break_b.png differ diff --git a/app/src/main/res/mipmap-xhdpi/icon_gray_tomato.png b/app/src/main/res/mipmap-xhdpi/icon_gray_tomato.png new file mode 100644 index 0000000..58b0981 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icon_gray_tomato.png differ diff --git a/app/src/main/res/mipmap-xhdpi/icon_pause.png b/app/src/main/res/mipmap-xhdpi/icon_pause.png new file mode 100644 index 0000000..7dcd5b5 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icon_pause.png differ diff --git a/app/src/main/res/mipmap-xhdpi/icon_question.png b/app/src/main/res/mipmap-xhdpi/icon_question.png new file mode 100644 index 0000000..159d49e Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icon_question.png differ diff --git a/app/src/main/res/mipmap-xhdpi/icon_reset.png b/app/src/main/res/mipmap-xhdpi/icon_reset.png new file mode 100644 index 0000000..0cc61f1 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icon_reset.png differ diff --git a/app/src/main/res/mipmap-xhdpi/icon_settings.png b/app/src/main/res/mipmap-xhdpi/icon_settings.png new file mode 100644 index 0000000..7b2b2c3 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icon_settings.png differ diff --git a/app/src/main/res/mipmap-xhdpi/icon_start.png b/app/src/main/res/mipmap-xhdpi/icon_start.png new file mode 100644 index 0000000..a9b516f Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icon_start.png differ diff --git a/app/src/main/res/mipmap-xhdpi/icon_tomato.png b/app/src/main/res/mipmap-xhdpi/icon_tomato.png new file mode 100644 index 0000000..d1d5a79 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icon_tomato.png differ diff --git a/app/src/main/res/mipmap-xhdpi/icontomato.png b/app/src/main/res/mipmap-xhdpi/icontomato.png new file mode 100644 index 0000000..4ecf474 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icontomato.png differ diff --git a/app/src/main/res/mipmap-xhdpi/navbar.png b/app/src/main/res/mipmap-xhdpi/navbar.png new file mode 100644 index 0000000..cd623de Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/navbar.png differ diff --git a/app/src/main/res/mipmap-xhdpi/pomodoroicon.png b/app/src/main/res/mipmap-xhdpi/pomodoroicon.png new file mode 100644 index 0000000..a12a211 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/pomodoroicon.png differ diff --git a/app/src/main/res/mipmap-xhdpi/quesmark.png b/app/src/main/res/mipmap-xhdpi/quesmark.png new file mode 100644 index 0000000..beda873 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/quesmark.png differ diff --git a/app/src/main/res/mipmap-xhdpi/rate.png b/app/src/main/res/mipmap-xhdpi/rate.png new file mode 100644 index 0000000..b00bb3f Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/rate.png differ diff --git a/app/src/main/res/mipmap-xhdpi/settings.png b/app/src/main/res/mipmap-xhdpi/settings.png new file mode 100644 index 0000000..24d08ec Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/settings.png differ diff --git a/app/src/main/res/mipmap-xhdpi/settingss.png b/app/src/main/res/mipmap-xhdpi/settingss.png new file mode 100644 index 0000000..0e98a0f Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/settingss.png differ diff --git a/app/src/main/res/mipmap-xhdpi/share.png b/app/src/main/res/mipmap-xhdpi/share.png new file mode 100644 index 0000000..c360e4f Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/share.png differ diff --git a/app/src/main/res/mipmap-xhdpi/stop.png b/app/src/main/res/mipmap-xhdpi/stop.png new file mode 100644 index 0000000..3a3518c Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/stop.png differ diff --git a/app/src/main/res/mipmap-xhdpi/tomato.png b/app/src/main/res/mipmap-xhdpi/tomato.png new file mode 100644 index 0000000..0b6a59f Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/tomato.png differ diff --git a/app/src/main/res/mipmap-xhdpi/whitecircle.png b/app/src/main/res/mipmap-xhdpi/whitecircle.png new file mode 100644 index 0000000..4047b58 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/whitecircle.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..1dfb5e2 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png new file mode 100644 index 0000000..bdaac27 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..82d864a Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..18832b3 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..c317641 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png new file mode 100644 index 0000000..6167dc4 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..b1305e2 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..d848532 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 545ac13..1e8686c 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -3,4 +3,12 @@ #009688 #00796B #FD87A9 + + #3F51B5 + #303F9F + #FF4081 + #FFFFFF + #f5fa55 + #4caf50 + #f4511e \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cf05d09..7c5150b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,7 +1,7 @@ - LolliPin + Pomodoro Hello world! Settings Nothing should happen on this page, here for test purpose @@ -11,4 +11,10 @@ Tap \'OK\' to log out, when you log back in you\'ll be able to create a new Pincode.\n\nIf you remember your Pincode, tap \'Cancel\' to go back. I am a PinCompatActivity! + + Open + Close + Minute + Timer + Notifications diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 18dd460..5a37a6a 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -20,4 +20,6 @@ @color/material_green_A200 + + diff --git a/build.gradle b/build.gradle index dbe7511..f9d142b 100644 --- a/build.gradle +++ b/build.gradle @@ -3,9 +3,10 @@ buildscript { repositories { jcenter() + google() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.3' + classpath 'com.android.tools.build:gradle:3.2.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 451394e..7706c8f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Apr 17 11:56:01 PDT 2017 +#Mon Dec 17 14:15:23 CET 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip