From fbb1df93d4c81b83af0b70374abd0806d86bfa66 Mon Sep 17 00:00:00 2001 From: Janak Amarasena Date: Sun, 1 Jul 2018 20:17:05 +0530 Subject: Renamed background images --- app/src/custom/res/drawable/background_drawer.xml | 52 ++++++++++++++++++++++ app/src/custom/res/drawable/background_eip.xml | 52 ++++++++++++++++++++++ app/src/custom/res/drawable/background_main.xml | 52 ++++++++++++++++++++++ app/src/custom/res/drawable/ic_colorsquare.xml | 52 ---------------------- app/src/main/res/drawable/background_drawer.xml | 52 ++++++++++++++++++++++ app/src/main/res/drawable/background_eip.xml | 52 ++++++++++++++++++++++ app/src/main/res/drawable/background_main.xml | 52 ++++++++++++++++++++++ app/src/main/res/drawable/ic_colorsquare.xml | 52 ---------------------- .../layout-sw600dp-port/a_provider_credentials.xml | 2 +- .../res/layout-sw600dp-port/a_provider_detail.xml | 2 +- .../res/layout-sw600dp-port/a_provider_list.xml | 2 +- .../res/layout-xlarge/a_provider_credentials.xml | 2 +- .../main/res/layout-xlarge/a_provider_detail.xml | 2 +- app/src/main/res/layout-xlarge/a_provider_list.xml | 2 +- app/src/main/res/layout-xlarge/f_eip.xml | 2 +- app/src/main/res/layout/f_drawer_main.xml | 2 +- app/src/main/res/layout/f_eip.xml | 2 +- 17 files changed, 321 insertions(+), 113 deletions(-) create mode 100644 app/src/custom/res/drawable/background_drawer.xml create mode 100644 app/src/custom/res/drawable/background_eip.xml create mode 100644 app/src/custom/res/drawable/background_main.xml delete mode 100644 app/src/custom/res/drawable/ic_colorsquare.xml create mode 100644 app/src/main/res/drawable/background_drawer.xml create mode 100644 app/src/main/res/drawable/background_eip.xml create mode 100644 app/src/main/res/drawable/background_main.xml delete mode 100644 app/src/main/res/drawable/ic_colorsquare.xml (limited to 'app/src') diff --git a/app/src/custom/res/drawable/background_drawer.xml b/app/src/custom/res/drawable/background_drawer.xml new file mode 100644 index 00000000..4b60e9dc --- /dev/null +++ b/app/src/custom/res/drawable/background_drawer.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/src/custom/res/drawable/background_eip.xml b/app/src/custom/res/drawable/background_eip.xml new file mode 100644 index 00000000..4b60e9dc --- /dev/null +++ b/app/src/custom/res/drawable/background_eip.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/src/custom/res/drawable/background_main.xml b/app/src/custom/res/drawable/background_main.xml new file mode 100644 index 00000000..4b60e9dc --- /dev/null +++ b/app/src/custom/res/drawable/background_main.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/src/custom/res/drawable/ic_colorsquare.xml b/app/src/custom/res/drawable/ic_colorsquare.xml deleted file mode 100644 index 4b60e9dc..00000000 --- a/app/src/custom/res/drawable/ic_colorsquare.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/background_drawer.xml b/app/src/main/res/drawable/background_drawer.xml new file mode 100644 index 00000000..4b60e9dc --- /dev/null +++ b/app/src/main/res/drawable/background_drawer.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/background_eip.xml b/app/src/main/res/drawable/background_eip.xml new file mode 100644 index 00000000..4b60e9dc --- /dev/null +++ b/app/src/main/res/drawable/background_eip.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/background_main.xml b/app/src/main/res/drawable/background_main.xml new file mode 100644 index 00000000..4b60e9dc --- /dev/null +++ b/app/src/main/res/drawable/background_main.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_colorsquare.xml b/app/src/main/res/drawable/ic_colorsquare.xml deleted file mode 100644 index 4b60e9dc..00000000 --- a/app/src/main/res/drawable/ic_colorsquare.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout-sw600dp-port/a_provider_credentials.xml b/app/src/main/res/layout-sw600dp-port/a_provider_credentials.xml index 1d689db6..400b74e7 100644 --- a/app/src/main/res/layout-sw600dp-port/a_provider_credentials.xml +++ b/app/src/main/res/layout-sw600dp-port/a_provider_credentials.xml @@ -10,7 +10,7 @@ diff --git a/app/src/main/res/layout-sw600dp-port/a_provider_detail.xml b/app/src/main/res/layout-sw600dp-port/a_provider_detail.xml index 6d7c97ae..b9e2dcb0 100644 --- a/app/src/main/res/layout-sw600dp-port/a_provider_detail.xml +++ b/app/src/main/res/layout-sw600dp-port/a_provider_detail.xml @@ -11,7 +11,7 @@ diff --git a/app/src/main/res/layout-sw600dp-port/a_provider_list.xml b/app/src/main/res/layout-sw600dp-port/a_provider_list.xml index 818ce864..1c8fd194 100644 --- a/app/src/main/res/layout-sw600dp-port/a_provider_list.xml +++ b/app/src/main/res/layout-sw600dp-port/a_provider_list.xml @@ -11,7 +11,7 @@ diff --git a/app/src/main/res/layout-xlarge/a_provider_credentials.xml b/app/src/main/res/layout-xlarge/a_provider_credentials.xml index 79045082..c6fdf162 100644 --- a/app/src/main/res/layout-xlarge/a_provider_credentials.xml +++ b/app/src/main/res/layout-xlarge/a_provider_credentials.xml @@ -10,7 +10,7 @@ diff --git a/app/src/main/res/layout-xlarge/a_provider_detail.xml b/app/src/main/res/layout-xlarge/a_provider_detail.xml index c1eeb0e0..643b4008 100644 --- a/app/src/main/res/layout-xlarge/a_provider_detail.xml +++ b/app/src/main/res/layout-xlarge/a_provider_detail.xml @@ -11,7 +11,7 @@ diff --git a/app/src/main/res/layout-xlarge/a_provider_list.xml b/app/src/main/res/layout-xlarge/a_provider_list.xml index 9150466a..261403e8 100644 --- a/app/src/main/res/layout-xlarge/a_provider_list.xml +++ b/app/src/main/res/layout-xlarge/a_provider_list.xml @@ -11,7 +11,7 @@ diff --git a/app/src/main/res/layout-xlarge/f_eip.xml b/app/src/main/res/layout-xlarge/f_eip.xml index 2326ffe8..4db7cc56 100644 --- a/app/src/main/res/layout-xlarge/f_eip.xml +++ b/app/src/main/res/layout-xlarge/f_eip.xml @@ -51,7 +51,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitXY" - app:srcCompat="@drawable/ic_colorsquare" /> + app:srcCompat="@drawable/background_eip" /> + app:srcCompat="@drawable/background_drawer" /> + app:srcCompat="@drawable/background_eip" /> Date: Sun, 1 Jul 2018 20:26:00 +0530 Subject: Renamed mask to logo --- app/src/custom/res/drawable/splash_page.xml | 2 +- .../main/java/se/leap/bitmaskclient/LoginActivity.java | 2 +- .../main/java/se/leap/bitmaskclient/SignupActivity.java | 2 +- app/src/main/res/drawable-ldpi/logo.png | Bin 0 -> 8743 bytes app/src/main/res/drawable-ldpi/mask.png | Bin 8743 -> 0 bytes app/src/main/res/drawable-mdpi/logo.png | Bin 0 -> 6324 bytes app/src/main/res/drawable-mdpi/mask.png | Bin 6324 -> 0 bytes app/src/main/res/drawable-xxxhdpi/logo.png | Bin 0 -> 43251 bytes app/src/main/res/drawable-xxxhdpi/mask.png | Bin 43251 -> 0 bytes app/src/main/res/drawable/splash_page.xml | 2 +- app/src/main/res/layout-xlarge/v_provider_header.xml | 2 +- app/src/main/res/layout/f_drawer_main.xml | 2 +- app/src/main/res/layout/v_provider_header.xml | 2 +- 13 files changed, 7 insertions(+), 7 deletions(-) create mode 100644 app/src/main/res/drawable-ldpi/logo.png delete mode 100644 app/src/main/res/drawable-ldpi/mask.png create mode 100644 app/src/main/res/drawable-mdpi/logo.png delete mode 100644 app/src/main/res/drawable-mdpi/mask.png create mode 100644 app/src/main/res/drawable-xxxhdpi/logo.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/mask.png (limited to 'app/src') diff --git a/app/src/custom/res/drawable/splash_page.xml b/app/src/custom/res/drawable/splash_page.xml index 8fe99847..57caa834 100644 --- a/app/src/custom/res/drawable/splash_page.xml +++ b/app/src/custom/res/drawable/splash_page.xml @@ -10,7 +10,7 @@ diff --git a/app/src/main/java/se/leap/bitmaskclient/LoginActivity.java b/app/src/main/java/se/leap/bitmaskclient/LoginActivity.java index a407b0a9..00ede1a6 100644 --- a/app/src/main/java/se/leap/bitmaskclient/LoginActivity.java +++ b/app/src/main/java/se/leap/bitmaskclient/LoginActivity.java @@ -17,7 +17,7 @@ public class LoginActivity extends ProviderCredentialsBaseActivity { protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setProgressbarText(R.string.logging_in); - setProviderHeaderLogo(R.drawable.mask); + setProviderHeaderLogo(R.drawable.logo); setProviderHeaderText(R.string.login_to_profile); } diff --git a/app/src/main/java/se/leap/bitmaskclient/SignupActivity.java b/app/src/main/java/se/leap/bitmaskclient/SignupActivity.java index 0ff792bb..3eac711f 100644 --- a/app/src/main/java/se/leap/bitmaskclient/SignupActivity.java +++ b/app/src/main/java/se/leap/bitmaskclient/SignupActivity.java @@ -18,7 +18,7 @@ public class SignupActivity extends ProviderCredentialsBaseActivity { protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setProviderHeaderLogo(R.drawable.mask); + setProviderHeaderLogo(R.drawable.logo); setProviderHeaderText(R.string.create_profile); setProgressbarText(R.string.signing_up); diff --git a/app/src/main/res/drawable-ldpi/logo.png b/app/src/main/res/drawable-ldpi/logo.png new file mode 100644 index 00000000..4e22d99f Binary files /dev/null and b/app/src/main/res/drawable-ldpi/logo.png differ diff --git a/app/src/main/res/drawable-ldpi/mask.png b/app/src/main/res/drawable-ldpi/mask.png deleted file mode 100644 index 4e22d99f..00000000 Binary files a/app/src/main/res/drawable-ldpi/mask.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/logo.png b/app/src/main/res/drawable-mdpi/logo.png new file mode 100644 index 00000000..e53cb15c Binary files /dev/null and b/app/src/main/res/drawable-mdpi/logo.png differ diff --git a/app/src/main/res/drawable-mdpi/mask.png b/app/src/main/res/drawable-mdpi/mask.png deleted file mode 100644 index e53cb15c..00000000 Binary files a/app/src/main/res/drawable-mdpi/mask.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/logo.png b/app/src/main/res/drawable-xxxhdpi/logo.png new file mode 100644 index 00000000..4297d90c Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/logo.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/mask.png b/app/src/main/res/drawable-xxxhdpi/mask.png deleted file mode 100644 index 4297d90c..00000000 Binary files a/app/src/main/res/drawable-xxxhdpi/mask.png and /dev/null differ diff --git a/app/src/main/res/drawable/splash_page.xml b/app/src/main/res/drawable/splash_page.xml index 44112f06..1740da58 100644 --- a/app/src/main/res/drawable/splash_page.xml +++ b/app/src/main/res/drawable/splash_page.xml @@ -6,7 +6,7 @@ diff --git a/app/src/main/res/layout-xlarge/v_provider_header.xml b/app/src/main/res/layout-xlarge/v_provider_header.xml index 45f8302b..1d5ece94 100644 --- a/app/src/main/res/layout-xlarge/v_provider_header.xml +++ b/app/src/main/res/layout-xlarge/v_provider_header.xml @@ -7,7 +7,7 @@ android:layout_width="@dimen/bitmask_logo_tablet" android:layout_height="@dimen/bitmask_logo_tablet" android:adjustViewBounds="true" - app:srcCompat="@drawable/mask" /> + app:srcCompat="@drawable/logo" /> + app:srcCompat="@drawable/logo" /> + app:srcCompat="@drawable/logo" /> Date: Sun, 1 Jul 2018 20:37:31 +0530 Subject: Added logo and splash resources to custom res --- .../custom/res/drawable-hdpi/ic_splash_background.png | Bin 0 -> 39702 bytes app/src/custom/res/drawable-ldpi/logo.png | Bin 0 -> 8743 bytes app/src/custom/res/drawable-mdpi/logo.png | Bin 0 -> 6324 bytes .../custom/res/drawable-xhdpi/ic_splash_background.png | Bin 0 -> 64868 bytes .../res/drawable-xxxhdpi/ic_splash_background.png | Bin 0 -> 131879 bytes app/src/custom/res/drawable-xxxhdpi/logo.png | Bin 0 -> 43251 bytes app/src/custom/res/drawable/splash_page.xml | 8 ++++++-- 7 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 app/src/custom/res/drawable-hdpi/ic_splash_background.png create mode 100644 app/src/custom/res/drawable-ldpi/logo.png create mode 100644 app/src/custom/res/drawable-mdpi/logo.png create mode 100644 app/src/custom/res/drawable-xhdpi/ic_splash_background.png create mode 100644 app/src/custom/res/drawable-xxxhdpi/ic_splash_background.png create mode 100644 app/src/custom/res/drawable-xxxhdpi/logo.png (limited to 'app/src') diff --git a/app/src/custom/res/drawable-hdpi/ic_splash_background.png b/app/src/custom/res/drawable-hdpi/ic_splash_background.png new file mode 100644 index 00000000..3e5f7871 Binary files /dev/null and b/app/src/custom/res/drawable-hdpi/ic_splash_background.png differ diff --git a/app/src/custom/res/drawable-ldpi/logo.png b/app/src/custom/res/drawable-ldpi/logo.png new file mode 100644 index 00000000..4e22d99f Binary files /dev/null and b/app/src/custom/res/drawable-ldpi/logo.png differ diff --git a/app/src/custom/res/drawable-mdpi/logo.png b/app/src/custom/res/drawable-mdpi/logo.png new file mode 100644 index 00000000..e53cb15c Binary files /dev/null and b/app/src/custom/res/drawable-mdpi/logo.png differ diff --git a/app/src/custom/res/drawable-xhdpi/ic_splash_background.png b/app/src/custom/res/drawable-xhdpi/ic_splash_background.png new file mode 100644 index 00000000..c2135c04 Binary files /dev/null and b/app/src/custom/res/drawable-xhdpi/ic_splash_background.png differ diff --git a/app/src/custom/res/drawable-xxxhdpi/ic_splash_background.png b/app/src/custom/res/drawable-xxxhdpi/ic_splash_background.png new file mode 100644 index 00000000..1b8046fa Binary files /dev/null and b/app/src/custom/res/drawable-xxxhdpi/ic_splash_background.png differ diff --git a/app/src/custom/res/drawable-xxxhdpi/logo.png b/app/src/custom/res/drawable-xxxhdpi/logo.png new file mode 100644 index 00000000..4297d90c Binary files /dev/null and b/app/src/custom/res/drawable-xxxhdpi/logo.png differ diff --git a/app/src/custom/res/drawable/splash_page.xml b/app/src/custom/res/drawable/splash_page.xml index 57caa834..5b07671f 100644 --- a/app/src/custom/res/drawable/splash_page.xml +++ b/app/src/custom/res/drawable/splash_page.xml @@ -1,14 +1,18 @@ - + + + - + + + -- cgit v1.2.3 From e4eceb400d73dd9060868e055a72ed25b290e9ec Mon Sep 17 00:00:00 2001 From: Janak Amarasena Date: Sun, 8 Jul 2018 16:33:46 +0530 Subject: Added custom layout for donation popup --- app/src/custom/res/drawable/donation_img.xml | 9 ++ .../java/se/leap/bitmaskclient/EipFragment.java | 94 +++------------- .../fragments/DonationReminderDialog.java | 121 +++++++++++++++++++++ .../leap/bitmaskclient/utils/PreferenceHelper.java | 10 ++ app/src/main/res/drawable/cust_button_primary.xml | 24 ++++ .../main/res/drawable/cust_button_secondary.xml | 27 +++++ app/src/main/res/drawable/donation_img.xml | 8 ++ .../main/res/layout/donation_reminder_dialog.xml | 62 +++++++++++ 8 files changed, 274 insertions(+), 81 deletions(-) create mode 100644 app/src/custom/res/drawable/donation_img.xml create mode 100644 app/src/main/java/se/leap/bitmaskclient/fragments/DonationReminderDialog.java create mode 100644 app/src/main/res/drawable/cust_button_primary.xml create mode 100644 app/src/main/res/drawable/cust_button_secondary.xml create mode 100644 app/src/main/res/drawable/donation_img.xml create mode 100644 app/src/main/res/layout/donation_reminder_dialog.xml (limited to 'app/src') diff --git a/app/src/custom/res/drawable/donation_img.xml b/app/src/custom/res/drawable/donation_img.xml new file mode 100644 index 00000000..de93a9ce --- /dev/null +++ b/app/src/custom/res/drawable/donation_img.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/app/src/main/java/se/leap/bitmaskclient/EipFragment.java b/app/src/main/java/se/leap/bitmaskclient/EipFragment.java index 51f787b7..61abd6ce 100644 --- a/app/src/main/java/se/leap/bitmaskclient/EipFragment.java +++ b/app/src/main/java/se/leap/bitmaskclient/EipFragment.java @@ -25,27 +25,21 @@ import android.content.ServiceConnection; import android.content.SharedPreferences; import android.graphics.ColorMatrix; import android.graphics.ColorMatrixColorFilter; -import android.net.Uri; import android.os.Bundle; import android.os.IBinder; import android.support.annotation.NonNull; -import android.support.annotation.Nullable; +import android.support.v4.app.DialogFragment; import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AlertDialog; import android.support.v7.widget.AppCompatImageView; import android.support.v7.widget.AppCompatTextView; -import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.time.temporal.ChronoUnit; -import java.util.Date; -import java.util.Locale; import java.util.Observable; import java.util.Observer; @@ -58,23 +52,17 @@ import de.blinkt.openvpn.core.OpenVPNService; import de.blinkt.openvpn.core.ProfileManager; import se.leap.bitmaskclient.eip.EipCommand; import se.leap.bitmaskclient.eip.EipStatus; -import se.leap.bitmaskclient.utils.DateHelper; +import se.leap.bitmaskclient.fragments.DonationReminderDialog; import se.leap.bitmaskclient.views.VpnStateImage; import static android.view.View.GONE; import static android.view.View.VISIBLE; import static de.blinkt.openvpn.core.ConnectionStatus.LEVEL_NONETWORK; -import static se.leap.bitmaskclient.Constants.DONATION_REMINDER_DURATION; import static se.leap.bitmaskclient.Constants.EIP_RESTART_ON_BOOT; -import static se.leap.bitmaskclient.Constants.FIRST_TIME_USER_DATE; import static se.leap.bitmaskclient.Constants.PROVIDER_KEY; import static se.leap.bitmaskclient.Constants.REQUEST_CODE_LOG_IN; import static se.leap.bitmaskclient.Constants.REQUEST_CODE_SWITCH_PROVIDER; import static se.leap.bitmaskclient.Constants.SHARED_PREFERENCES; -import static se.leap.bitmaskclient.Constants.DONATION_URL; -import static se.leap.bitmaskclient.Constants.ENABLE_DONATION; -import static se.leap.bitmaskclient.Constants.ENABLE_DONATION_REMINDER; -import static se.leap.bitmaskclient.Constants.LAST_DONATION_REMINDER_DATE; import static se.leap.bitmaskclient.ProviderAPI.UPDATE_INVALID_VPN_CERTIFICATE; import static se.leap.bitmaskclient.ProviderAPI.USER_MESSAGE; import static se.leap.bitmaskclient.R.string.vpn_certificate_user_message; @@ -85,7 +73,6 @@ public class EipFragment extends Fragment implements Observer { public static final String ASK_TO_CANCEL_VPN = "ask_to_cancel_vpn"; - private SharedPreferences preferences; private Provider provider; @@ -172,8 +159,8 @@ public class EipFragment extends Fragment implements Observer { @Override public void onStart() { super.onStart(); - if (isDonationReminderCallable()) { - showDonationReminder(); + if (DonationReminderDialog.isCallable(getContext())) { + showDonationReminderDialog(); } } @@ -509,71 +496,16 @@ public class EipFragment extends Fragment implements Observer { } } - private void showDonationReminder() { - Activity activity = getActivity(); - if (activity == null) { - Log.e(TAG, "activity is null when triggering donation reminder"); - return; - } - String message = TextUtils.isEmpty(activity.getString(R.string.donate_message)) ? - activity.getString(R.string.donate_default_message) : activity.getString(R.string.donate_message); - AlertDialog.Builder alertBuilder = new AlertDialog.Builder(activity); - alertDialog = alertBuilder.setTitle(activity.getString(R.string.donate_title)) - .setMessage(message) - .setPositiveButton(R.string.donate_button_donate, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(DONATION_URL)); - startActivity(browserIntent); - } - }) - .setNegativeButton(R.string.donate_button_remind_later, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - } - }).setOnDismissListener(new DialogInterface.OnDismissListener() { - @Override - public void onDismiss(DialogInterface dialog) { - preferences.edit().putString(LAST_DONATION_REMINDER_DATE, - DateHelper.getCurrentDateString()).apply(); - } - }).show(); - } - - private boolean isDonationReminderCallable() { - if (!ENABLE_DONATION || !ENABLE_DONATION_REMINDER) { - return false; - } - - if (preferences == null) { - Log.e(TAG, "preferences is null!"); - return false; - } - - String firstTimeUserDate = preferences.getString(FIRST_TIME_USER_DATE, null); - if (firstTimeUserDate == null) { - preferences.edit().putString(FIRST_TIME_USER_DATE, DateHelper.getCurrentDateString()).apply(); - return false; - } - + public void showDonationReminderDialog() { try { - long diffDays; - - diffDays = DateHelper.getDateDiffToCurrentDateInDays(firstTimeUserDate); - if (diffDays < 1) { - return false; - } - - String lastDonationReminderDate = preferences.getString(LAST_DONATION_REMINDER_DATE, null); - if (lastDonationReminderDate == null) { - return true; - } - diffDays = DateHelper.getDateDiffToCurrentDateInDays(lastDonationReminderDate); - return diffDays >= DONATION_REMINDER_DURATION; - - } catch (ParseException e) { + FragmentTransaction fragmentTransaction = new FragmentManagerEnhanced( + getActivity().getSupportFragmentManager()).removePreviousFragment( + DonationReminderDialog.TAG); + DialogFragment newFragment = new DonationReminderDialog(); + newFragment.setCancelable(false); + newFragment.show(fragmentTransaction, DonationReminderDialog.TAG); + } catch (IllegalStateException | NullPointerException e) { e.printStackTrace(); - Log.e(TAG, e.getMessage()); - return false; } } - } diff --git a/app/src/main/java/se/leap/bitmaskclient/fragments/DonationReminderDialog.java b/app/src/main/java/se/leap/bitmaskclient/fragments/DonationReminderDialog.java new file mode 100644 index 00000000..001d7e6c --- /dev/null +++ b/app/src/main/java/se/leap/bitmaskclient/fragments/DonationReminderDialog.java @@ -0,0 +1,121 @@ +package se.leap.bitmaskclient.fragments; + +import android.app.Dialog; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v7.app.AlertDialog; +import android.support.v7.app.AppCompatDialogFragment; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.Button; + +import java.text.ParseException; + +import butterknife.ButterKnife; +import butterknife.InjectView; +import se.leap.bitmaskclient.R; +import se.leap.bitmaskclient.utils.DateHelper; +import se.leap.bitmaskclient.utils.PreferenceHelper; + +import static se.leap.bitmaskclient.Constants.DONATION_REMINDER_DURATION; +import static se.leap.bitmaskclient.Constants.DONATION_URL; +import static se.leap.bitmaskclient.Constants.ENABLE_DONATION; +import static se.leap.bitmaskclient.Constants.ENABLE_DONATION_REMINDER; +import static se.leap.bitmaskclient.Constants.FIRST_TIME_USER_DATE; +import static se.leap.bitmaskclient.Constants.LAST_DONATION_REMINDER_DATE; + +public class DonationReminderDialog extends AppCompatDialogFragment { + + public final static String TAG = DonationReminderDialog.class.getName(); + private static boolean isShown = false; + + @InjectView(R.id.btnDonate) + Button btnDonate; + + @InjectView(R.id.btnLater) + Button btnLater; + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + @NonNull + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + LayoutInflater inflater = getActivity().getLayoutInflater(); + View view = inflater.inflate(R.layout.donation_reminder_dialog, null); + ButterKnife.inject(this, view); + isShown = true; + + builder.setView(view); + btnDonate.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(DONATION_URL)); + startActivity(browserIntent); + PreferenceHelper.putString(getContext(), LAST_DONATION_REMINDER_DATE, + DateHelper.getCurrentDateString()); + dismiss(); + } + }); + btnLater.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PreferenceHelper.putString(getContext(), LAST_DONATION_REMINDER_DATE, + DateHelper.getCurrentDateString()); + dismiss(); + } + }); + + return builder.create(); + } + + public static boolean isCallable(Context context) { + if (isShown) { + return false; + } + + if (!ENABLE_DONATION || !ENABLE_DONATION_REMINDER) { + return false; + } + + if (context == null) { + Log.e(TAG, "context is null!"); + return false; + } + + String firstTimeUserDate = PreferenceHelper.getString(context, FIRST_TIME_USER_DATE, null); + if (firstTimeUserDate == null) { + PreferenceHelper.putString(context, FIRST_TIME_USER_DATE, DateHelper.getCurrentDateString()); + return false; + } + + try { + long diffDays; + + diffDays = DateHelper.getDateDiffToCurrentDateInDays(firstTimeUserDate); + if (diffDays < 1) { + return false; + } + + String lastDonationReminderDate = PreferenceHelper.getString(context, LAST_DONATION_REMINDER_DATE, null); + if (lastDonationReminderDate == null) { + return true; + } + diffDays = DateHelper.getDateDiffToCurrentDateInDays(lastDonationReminderDate); + return diffDays >= DONATION_REMINDER_DURATION; + + } catch (ParseException e) { + e.printStackTrace(); + Log.e(TAG, e.getMessage()); + return false; + } + } +} diff --git a/app/src/main/java/se/leap/bitmaskclient/utils/PreferenceHelper.java b/app/src/main/java/se/leap/bitmaskclient/utils/PreferenceHelper.java index 12015dfb..5f739ce1 100644 --- a/app/src/main/java/se/leap/bitmaskclient/utils/PreferenceHelper.java +++ b/app/src/main/java/se/leap/bitmaskclient/utils/PreferenceHelper.java @@ -1,5 +1,6 @@ package se.leap.bitmaskclient.utils; +import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.os.Looper; @@ -239,4 +240,13 @@ public class PreferenceHelper { return result; } + public static String getString(Context context, String key, String defValue) { + SharedPreferences preferences = context.getSharedPreferences(SHARED_PREFERENCES, Context.MODE_PRIVATE); + return preferences.getString(key, defValue); + } + + public static void putString(Context context, String key, String value){ + SharedPreferences preferences = context.getSharedPreferences(SHARED_PREFERENCES, Context.MODE_PRIVATE); + preferences.edit().putString(key, value).apply(); + } } diff --git a/app/src/main/res/drawable/cust_button_primary.xml b/app/src/main/res/drawable/cust_button_primary.xml new file mode 100644 index 00000000..3b0f7e26 --- /dev/null +++ b/app/src/main/res/drawable/cust_button_primary.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/cust_button_secondary.xml b/app/src/main/res/drawable/cust_button_secondary.xml new file mode 100644 index 00000000..553adca8 --- /dev/null +++ b/app/src/main/res/drawable/cust_button_secondary.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/donation_img.xml b/app/src/main/res/drawable/donation_img.xml new file mode 100644 index 00000000..1e0b405e --- /dev/null +++ b/app/src/main/res/drawable/donation_img.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/app/src/main/res/layout/donation_reminder_dialog.xml b/app/src/main/res/layout/donation_reminder_dialog.xml new file mode 100644 index 00000000..6b523053 --- /dev/null +++ b/app/src/main/res/layout/donation_reminder_dialog.xml @@ -0,0 +1,62 @@ + + + + + + + + + +