Showing
6 changed files
with
97 additions
and
3 deletions
| ... | @@ -46,4 +46,4 @@ LoginType=msisdn | ... | @@ -46,4 +46,4 @@ LoginType=msisdn | 
| 46 | 46 | ||
| 47 | # The deeplink url scheme for react native campaigns: | 47 | # The deeplink url scheme for react native campaigns: | 
| 48 | # Example visit.greece.gr | 48 | # Example visit.greece.gr | 
| 49 | -#DL_URL_SCHEME= | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | 
| 49 | +DL_URL_SCHEME=demo | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... | 
| ... | @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' | ... | @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' | 
| 2 | 2 | ||
| 3 | ext { | 3 | ext { | 
| 4 | PUBLISH_GROUP_ID = 'ly.warp' | 4 | PUBLISH_GROUP_ID = 'ly.warp' | 
| 5 | - PUBLISH_VERSION = '4.5.4-cos2' | 5 | + PUBLISH_VERSION = '4.5.4-cos3' | 
| 6 | PUBLISH_ARTIFACT_ID = 'warply-android-sdk' | 6 | PUBLISH_ARTIFACT_ID = 'warply-android-sdk' | 
| 7 | } | 7 | } | 
| 8 | 8 | ... | ... | 
| ... | @@ -66,6 +66,11 @@ | ... | @@ -66,6 +66,11 @@ | 
| 66 | <data | 66 | <data | 
| 67 | android:host="cosmoteapp.gr" | 67 | android:host="cosmoteapp.gr" | 
| 68 | android:scheme="demo" /> | 68 | android:scheme="demo" /> | 
| 69 | + | ||
| 70 | + <data | ||
| 71 | + android:host="cosmoteapp.gr" | ||
| 72 | + android:pathPrefix="/payment" | ||
| 73 | + android:scheme="demo" /> | ||
| 69 | </intent-filter> | 74 | </intent-filter> | 
| 70 | </activity> | 75 | </activity> | 
| 71 | 76 | ... | ... | 
| ... | @@ -126,6 +126,10 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation | ... | @@ -126,6 +126,10 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation | 
| 126 | String parameter = String.valueOf(intent.getData().getQueryParameter("participations")); | 126 | String parameter = String.valueOf(intent.getData().getQueryParameter("participations")); | 
| 127 | showDialog(parameter); | 127 | showDialog(parameter); | 
| 128 | } | 128 | } | 
| 129 | + if (data.getPath().equals("/payment")) { | ||
| 130 | + Intent intentBill = new Intent(BaseFragmentActivity.this, BillPaymentActivity.class); | ||
| 131 | + startActivity(intentBill); | ||
| 132 | + } | ||
| 129 | } | 133 | } | 
| 130 | } | 134 | } | 
| 131 | 135 | ... | ... | 
| ... | @@ -2,8 +2,20 @@ package ly.warp.sdk.activities; | ... | @@ -2,8 +2,20 @@ package ly.warp.sdk.activities; | 
| 2 | 2 | ||
| 3 | import android.app.Activity; | 3 | import android.app.Activity; | 
| 4 | import android.app.Dialog; | 4 | import android.app.Dialog; | 
| 5 | +import android.app.Notification; | ||
| 6 | +import android.app.NotificationChannel; | ||
| 7 | +import android.app.NotificationManager; | ||
| 8 | +import android.app.PendingIntent; | ||
| 9 | +import android.content.Context; | ||
| 10 | +import android.content.Intent; | ||
| 11 | +import android.content.pm.PackageManager; | ||
| 12 | +import android.graphics.BitmapFactory; | ||
| 5 | import android.graphics.Typeface; | 13 | import android.graphics.Typeface; | 
| 14 | +import android.net.Uri; | ||
| 15 | +import android.os.Build; | ||
| 6 | import android.os.Bundle; | 16 | import android.os.Bundle; | 
| 17 | +import android.os.Handler; | ||
| 18 | +import android.os.Looper; | ||
| 7 | import android.text.Spannable; | 19 | import android.text.Spannable; | 
| 8 | import android.text.SpannableString; | 20 | import android.text.SpannableString; | 
| 9 | import android.text.SpannableStringBuilder; | 21 | import android.text.SpannableStringBuilder; | 
| ... | @@ -14,6 +26,8 @@ import android.widget.ImageView; | ... | @@ -14,6 +26,8 @@ import android.widget.ImageView; | 
| 14 | import android.widget.LinearLayout; | 26 | import android.widget.LinearLayout; | 
| 15 | import android.widget.TextView; | 27 | import android.widget.TextView; | 
| 16 | 28 | ||
| 29 | +import androidx.core.app.NotificationCompat; | ||
| 30 | + | ||
| 17 | import ly.warp.sdk.R; | 31 | import ly.warp.sdk.R; | 
| 18 | import ly.warp.sdk.db.WarplyDBHelper; | 32 | import ly.warp.sdk.db.WarplyDBHelper; | 
| 19 | import ly.warp.sdk.utils.WarpUtils; | 33 | import ly.warp.sdk.utils.WarpUtils; | 
| ... | @@ -54,14 +68,41 @@ public class BillPaymentActivity extends Activity implements View.OnClickListene | ... | @@ -54,14 +68,41 @@ public class BillPaymentActivity extends Activity implements View.OnClickListene | 
| 54 | } | 68 | } | 
| 55 | 69 | ||
| 56 | @Override | 70 | @Override | 
| 71 | + protected void onNewIntent(Intent intent) { | ||
| 72 | + super.onNewIntent(intent); | ||
| 73 | + if (intent.hasExtra("channel")) { | ||
| 74 | + String tempUrl = BaseFragmentActivity.getUniqueCampaignList().get("lucky_draw").get(0).getIndexUrl(); | ||
| 75 | + | ||
| 76 | + tempUrl = tempUrl | ||
| 77 | + + "?web_id=" + WarpUtils.getWebId(this) | ||
| 78 | + + "&app_uuid=" + WarplyProperty.getAppUuid(this) | ||
| 79 | + + "&api_key=" + WarpUtils.getApiKey(this) | ||
| 80 | + + "&session_uuid=" + BaseFragmentActivity.getUniqueCampaignList().get("lucky_draw").get(0).getSessionUUID() | ||
| 81 | + + "&access_token=" + WarplyDBHelper.getInstance(this).getAuthValue("access_token") | ||
| 82 | + + "&refresh_token=" + WarplyDBHelper.getInstance(this).getAuthValue("refresh_token") | ||
| 83 | + + "&client_id=" + WarplyDBHelper.getInstance(this).getClientValue("client_id") | ||
| 84 | + + "&client_secret=" + WarplyDBHelper.getInstance(this).getClientValue("client_secret"); | ||
| 85 | + | ||
| 86 | + if (BaseFragmentActivity.getConsumer() != null) | ||
| 87 | + tempUrl = tempUrl + "&auth_token=" + (BaseFragmentActivity.getConsumer().getUuid()); | ||
| 88 | + else | ||
| 89 | + tempUrl = tempUrl + "&auth_token="; | ||
| 90 | + | ||
| 91 | + startActivity(WarpViewActivity.createIntentFromURL(this, tempUrl)); | ||
| 92 | + } | ||
| 93 | + } | ||
| 94 | + | ||
| 95 | + @Override | ||
| 57 | public void onClick(View view) { | 96 | public void onClick(View view) { | 
| 58 | if (view.getId() == R.id.iv_bill_payment_close) { | 97 | if (view.getId() == R.id.iv_bill_payment_close) { | 
| 59 | onBackPressed(); | 98 | onBackPressed(); | 
| 60 | return; | 99 | return; | 
| 61 | } | 100 | } | 
| 62 | if (view.getId() == R.id.button_pay) { | 101 | if (view.getId() == R.id.button_pay) { | 
| 63 | - // open dialog | ||
| 64 | showDialog(); | 102 | showDialog(); | 
| 103 | + new Handler(Looper.getMainLooper()).postDelayed( | ||
| 104 | + () -> createLocalNotification(BillPaymentActivity.this), | ||
| 105 | + 3000); | ||
| 65 | } | 106 | } | 
| 66 | } | 107 | } | 
| 67 | 108 | ||
| ... | @@ -69,6 +110,50 @@ public class BillPaymentActivity extends Activity implements View.OnClickListene | ... | @@ -69,6 +110,50 @@ public class BillPaymentActivity extends Activity implements View.OnClickListene | 
| 69 | // Methods | 110 | // Methods | 
| 70 | // =========================================================== | 111 | // =========================================================== | 
| 71 | 112 | ||
| 113 | + private void createLocalNotification(Context context) { | ||
| 114 | + PendingIntent pendingIntent; | ||
| 115 | + Intent notifyIntent; | ||
| 116 | + notifyIntent = new Intent(this, BillPaymentActivity.class).putExtra("channel", "paymentNotify"); | ||
| 117 | + notifyIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); | ||
| 118 | + | ||
| 119 | + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { | ||
| 120 | + pendingIntent = PendingIntent.getActivity(context, 1001, notifyIntent, PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_MUTABLE); | ||
| 121 | + } else { | ||
| 122 | + pendingIntent = PendingIntent.getActivity(context, 1001, notifyIntent, PendingIntent.FLAG_ONE_SHOT); | ||
| 123 | + } | ||
| 124 | + | ||
| 125 | + NotificationCompat.Builder b = new NotificationCompat.Builder(this, "paymentNotify") | ||
| 126 | + .setSmallIcon(R.drawable.gift_icon) | ||
| 127 | + .setLargeIcon(BitmapFactory.decodeResource(getApplicationContext().getResources(), R.drawable.ic_launcher)) | ||
| 128 | + .setContentTitle("Συγχαρητήρια!") | ||
| 129 | + .setContentText("Ξεκλείδωσες το My Lucky Draw με την πληρωμή του λογαριασμού σου! Πάρε μέρος στις κληρώσεις!") | ||
| 130 | + .setStyle(new NotificationCompat.BigTextStyle() | ||
| 131 | + .bigText("Ξεκλείδωσες το My Lucky Draw με την πληρωμή του λογαριασμού σου! Πάρε μέρος στις κληρώσεις!")) | ||
| 132 | + .setAutoCancel(true) | ||
| 133 | + .setVibrate(new long[0]) | ||
| 134 | + .setDefaults(Notification.DEFAULT_ALL) | ||
| 135 | + .setChannelId("paymentNotify") | ||
| 136 | + .setPriority(Notification.PRIORITY_HIGH) | ||
| 137 | + .setContentIntent(pendingIntent); | ||
| 138 | + | ||
| 139 | + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { | ||
| 140 | + NotificationChannel notificationChannel = new NotificationChannel("paymentNotify", "paymentNotify", NotificationManager.IMPORTANCE_HIGH); | ||
| 141 | + notificationChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC); | ||
| 142 | + notificationChannel.setDescription("Ξεκλείδωσες το My Lucky Draw με την πληρωμή του λογαριασμού σου! Πάρε μέρος στις κληρώσεις!"); | ||
| 143 | + notificationChannel.setShowBadge(true); | ||
| 144 | + NotificationManager nm = getSystemService(NotificationManager.class); | ||
| 145 | + nm.createNotificationChannel(notificationChannel); | ||
| 146 | + Notification notification_build = b.setChannelId("paymentNotify").build(); | ||
| 147 | + notification_build.flags = Notification.FLAG_AUTO_CANCEL; | ||
| 148 | + nm.notify(1001, notification_build); | ||
| 149 | + } else { | ||
| 150 | + NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); | ||
| 151 | + Notification notification_build = b.build(); | ||
| 152 | + notification_build.flags = Notification.FLAG_AUTO_CANCEL; | ||
| 153 | + nm.notify(1001, notification_build); | ||
| 154 | + } | ||
| 155 | + } | ||
| 156 | + | ||
| 72 | private void initViews() { | 157 | private void initViews() { | 
| 73 | mIvBack.setOnClickListener(this); | 158 | mIvBack.setOnClickListener(this); | 
| 74 | mPayBtn.setOnClickListener(this); | 159 | mPayBtn.setOnClickListener(this); | ... | ... | 
 
6.88 KB
- 
Please register or login to post a comment
