Toggle navigation
Toggle navigation
This project
Loading...
Sign in
open-source
/
warply_android_sdk_maven_plugin
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
Panagiotis Triantafyllou
2025-03-05 12:47:59 +0200
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
190948c087e24107cba0ebafa8c2f4c99153291a
190948c0
1 parent
2ae3a212
sm coupons history request and response model
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
351 additions
and
217 deletions
.idea/compiler.xml
.idea/migrations.xml
.idea/misc.xml
warply_android_sdk/build.gradle
warply_android_sdk/src/main/java/ly/warp/sdk/activities/BaseFragmentActivity.java
warply_android_sdk/src/main/java/ly/warp/sdk/fragments/HomeFragment.java
warply_android_sdk/src/main/java/ly/warp/sdk/io/models/RedeemedSMHistoryModel.java
warply_android_sdk/src/main/java/ly/warp/sdk/utils/managers/WarplyManager.java
.idea/compiler.xml
View file @
190948c
<?xml version="1.0" encoding="UTF-8"?>
<project
version=
"4"
>
<component
name=
"CompilerConfiguration"
>
<bytecodeTargetLevel
target=
"
21
"
/>
<bytecodeTargetLevel
target=
"
17
"
/>
</component>
</project>
\ No newline at end of file
...
...
.idea/migrations.xml
0 → 100644
View file @
190948c
<?xml version="1.0" encoding="UTF-8"?>
<project
version=
"4"
>
<component
name=
"ProjectMigrations"
>
<option
name=
"MigrateToGradleLocalJavaHome"
>
<set>
<option
value=
"$PROJECT_DIR$"
/>
</set>
</option>
</component>
</project>
\ No newline at end of file
.idea/misc.xml
View file @
190948c
...
...
@@ -184,7 +184,7 @@
</map>
</option>
</component>
<component
name=
"ProjectRootManager"
version=
"2"
languageLevel=
"JDK_
21"
default=
"true"
project-jdk-name=
"jbr-21
"
project-jdk-type=
"JavaSDK"
>
<component
name=
"ProjectRootManager"
version=
"2"
languageLevel=
"JDK_
17"
default=
"true"
project-jdk-name=
"zulu-17
"
project-jdk-type=
"JavaSDK"
>
<output
url=
"file://$PROJECT_DIR$/build/classes"
/>
</component>
<component
name=
"ProjectType"
>
...
...
warply_android_sdk/build.gradle
View file @
190948c
...
...
@@ -5,7 +5,7 @@ android.buildFeatures.buildConfig = true
ext
{
PUBLISH_GROUP_ID
=
'ly.warp'
PUBLISH_VERSION
=
'4.5.5.4
r46
'
PUBLISH_VERSION
=
'4.5.5.4
m1
'
PUBLISH_ARTIFACT_ID
=
'warply-android-sdk'
}
...
...
warply_android_sdk/src/main/java/ly/warp/sdk/activities/BaseFragmentActivity.java
View file @
190948c
...
...
@@ -23,6 +23,7 @@ import ly.warp.sdk.db.WarplyDBHelper;
import
ly.warp.sdk.fragments.HomeFragment
;
import
ly.warp.sdk.io.callbacks.CallbackReceiver
;
import
ly.warp.sdk.io.models.Campaign
;
import
ly.warp.sdk.io.models.RedeemedSMHistoryModel
;
import
ly.warp.sdk.utils.managers.WarplyManager
;
public
class
BaseFragmentActivity
extends
FragmentActivity
implements
NavigationBarView
.
OnItemSelectedListener
{
...
...
@@ -52,6 +53,7 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation
if
(
WarplyDBHelper
.
getInstance
(
this
).
isTableNotEmpty
(
"auth"
))
{
WarplyManager
.
getSupermarketCampaign
(
mCampaignsCallback
);
WarplyManager
.
getRedeemedSMHistory
(
mSMHistoryReceiver
);
}
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
TIRAMISU
)
{
...
...
@@ -147,4 +149,16 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation
Toast
.
makeText
(
BaseFragmentActivity
.
this
,
"Campaigns Error"
,
Toast
.
LENGTH_SHORT
).
show
();
}
};
private
final
CallbackReceiver
<
RedeemedSMHistoryModel
>
mSMHistoryReceiver
=
new
CallbackReceiver
<
RedeemedSMHistoryModel
>()
{
@Override
public
void
onSuccess
(
RedeemedSMHistoryModel
result
)
{
Toast
.
makeText
(
BaseFragmentActivity
.
this
,
"SM HISTORY SUCCESS"
,
Toast
.
LENGTH_SHORT
).
show
();
}
@Override
public
void
onFailure
(
int
errorCode
)
{
Toast
.
makeText
(
BaseFragmentActivity
.
this
,
"SM HISTORY ERROR"
,
Toast
.
LENGTH_SHORT
).
show
();
}
};
}
...
...
warply_android_sdk/src/main/java/ly/warp/sdk/fragments/HomeFragment.java
View file @
190948c
...
...
@@ -23,6 +23,7 @@ import ly.warp.sdk.R;
import
ly.warp.sdk.db.WarplyDBHelper
;
import
ly.warp.sdk.io.callbacks.CallbackReceiver
;
import
ly.warp.sdk.io.models.Campaign
;
import
ly.warp.sdk.io.models.RedeemedSMHistoryModel
;
import
ly.warp.sdk.utils.WarplyManagerHelper
;
import
ly.warp.sdk.utils.managers.WarplyManager
;
...
...
@@ -100,6 +101,7 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Swip
public
void
onRefresh
()
{
if
(
WarplyDBHelper
.
getInstance
(
getActivity
()).
isTableNotEmpty
(
"auth"
))
{
WarplyManager
.
getSupermarketCampaign
(
mCampaignsCallback
);
WarplyManager
.
getRedeemedSMHistory
(
mSMHistoryReceiver
);
mSwipeRefresh
.
setRefreshing
(
false
);
}
else
{
mSwipeRefresh
.
setRefreshing
(
false
);
...
...
@@ -182,6 +184,7 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Swip
// }
WarplyManager
.
getSupermarketCampaign
(
mCampaignsCallback
);
WarplyManager
.
getRedeemedSMHistory
(
mSMHistoryReceiver
);
}
@Override
...
...
@@ -190,4 +193,16 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Swip
Toast
.
makeText
(
getActivity
(),
"LOGIN ERROR"
,
Toast
.
LENGTH_SHORT
).
show
();
}
};
private
final
CallbackReceiver
<
RedeemedSMHistoryModel
>
mSMHistoryReceiver
=
new
CallbackReceiver
<
RedeemedSMHistoryModel
>()
{
@Override
public
void
onSuccess
(
RedeemedSMHistoryModel
result
)
{
Toast
.
makeText
(
getActivity
(),
"SM HISTORY SUCCESS"
,
Toast
.
LENGTH_SHORT
).
show
();
}
@Override
public
void
onFailure
(
int
errorCode
)
{
Toast
.
makeText
(
getActivity
(),
"SM HISTORY ERROR"
,
Toast
.
LENGTH_SHORT
).
show
();
}
};
}
\ No newline at end of file
...
...
warply_android_sdk/src/main/java/ly/warp/sdk/io/models/RedeemedSMHistoryModel.java
0 → 100644
View file @
190948c
/*
* Copyright 2010-2013 Warply Ltd. All rights reserved.
*
* Redistribution and use in source and binary forms, without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE WARPLY LTD ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
* EVENT SHALL WARPLY LTD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package
ly
.
warp
.
sdk
.
io
.
models
;
/**
* Created by Panagiotis Triantafyllou on 05-Mar-25.
*/
public
class
RedeemedSMHistoryModel
{
private
CouponList
redeemedCouponList
=
new
CouponList
();
private
float
totalRedeemedValue
=
0.0f
;
public
RedeemedSMHistoryModel
()
{
this
.
redeemedCouponList
=
new
CouponList
();
this
.
totalRedeemedValue
=
0.0f
;
}
// ================================================================================
// Getters
// ================================================================================
public
CouponList
getRedeemedCouponList
()
{
return
redeemedCouponList
;
}
public
void
setRedeemedCouponList
(
CouponList
redeemedCouponList
)
{
this
.
redeemedCouponList
=
redeemedCouponList
;
}
public
float
getTotalRedeemedValue
()
{
return
totalRedeemedValue
;
}
public
void
setTotalRedeemedValue
(
float
totalRedeemedValue
)
{
this
.
totalRedeemedValue
=
totalRedeemedValue
;
}
}
warply_android_sdk/src/main/java/ly/warp/sdk/utils/managers/WarplyManager.java
View file @
190948c
...
...
@@ -65,6 +65,7 @@ import ly.warp.sdk.io.models.CouponList;
import
ly.warp.sdk.io.models.LoyaltySDKDynatraceEventModel
;
import
ly.warp.sdk.io.models.MarketPassDetailsModel
;
import
ly.warp.sdk.io.models.NewCampaign
;
import
ly.warp.sdk.io.models.RedeemedSMHistoryModel
;
import
ly.warp.sdk.io.request.WarplyRefreshTokenRequest
;
import
ly.warp.sdk.io.volley.ApiClient
;
import
ly.warp.sdk.io.volley.ApiService
;
...
...
@@ -94,53 +95,49 @@ public class WarplyManager {
WarpUtils
.
log
(
"[WARP Trace] WARPLY Refresh Authorize Request is active"
);
WarpUtils
.
log
(
"**************************************************"
);
Warply
.
postReceiveMicroappData
(
false
,
"token"
,
request
.
toJson
(),
new
CallbackReceiver
<
JSONObject
>()
{
@Override
public
void
onSuccess
(
JSONObject
result
)
{
if
(
result
.
has
(
"token_type"
))
{
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
saveAuthAccess
(
result
.
optString
(
"access_token"
,
""
),
result
.
optString
(
"refresh_token"
,
""
)
);
JSONObject
newResult
=
new
JSONObject
();
try
{
newResult
.
putOpt
(
"status"
,
1
);
newResult
.
putOpt
(
"message"
,
"Success"
);
Warply
.
postReceiveMicroappData
(
false
,
"token"
,
request
.
toJson
(),
new
CallbackReceiver
<
JSONObject
>()
{
@Override
public
void
onSuccess
(
JSONObject
result
)
{
if
(
result
.
has
(
"token_type"
))
{
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
saveAuthAccess
(
result
.
optString
(
"access_token"
,
""
),
result
.
optString
(
"refresh_token"
,
""
));
LoyaltySDKDynatraceEventModel
dynatraceEvent
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEvent
.
setEventName
(
"custom_success_refresh_token_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEvent
));
JSONObject
newResult
=
new
JSONObject
();
try
{
newResult
.
putOpt
(
"status"
,
1
);
newResult
.
putOpt
(
"message"
,
"Success"
);
receiver
.
onSuccess
(
newResult
);
}
catch
(
JSONException
e
)
{
e
.
printStackTrace
();
LoyaltySDKDynatraceEventModel
dynatraceEvent
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEvent
.
setEventName
(
"custom_error_refresh_token_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEvent
));
receiver
.
onFailure
(
2
);
}
}
else
{
LoyaltySDKDynatraceEventModel
dynatraceEvent
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEvent
.
setEventName
(
"custom_error_refresh_token_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEvent
));
receiver
.
onFailure
(
2
);
}
}
LoyaltySDKDynatraceEventModel
dynatraceEvent
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEvent
.
setEventName
(
"custom_success_refresh_token_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEvent
));
@Override
public
void
onFailure
(
int
errorCode
)
{
receiver
.
onSuccess
(
newResult
);
}
catch
(
JSONException
e
)
{
e
.
printStackTrace
();
LoyaltySDKDynatraceEventModel
dynatraceEvent
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEvent
.
setEventName
(
"custom_error_refresh_token_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEvent
));
if
(
errorCode
==
401
)
{
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
deleteAuth
();
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
deleteClient
();
receiver
.
onFailure
(
errorCode
);
}
receiver
.
onFailure
(
2
);
}
});
}
else
{
LoyaltySDKDynatraceEventModel
dynatraceEvent
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEvent
.
setEventName
(
"custom_error_refresh_token_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEvent
));
receiver
.
onFailure
(
2
);
}
}
@Override
public
void
onFailure
(
int
errorCode
)
{
LoyaltySDKDynatraceEventModel
dynatraceEvent
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEvent
.
setEventName
(
"custom_error_refresh_token_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEvent
));
if
(
errorCode
==
401
)
{
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
deleteAuth
();
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
deleteClient
();
receiver
.
onFailure
(
errorCode
);
}
}
});
}
public
static
void
logout
(
final
CallbackReceiver
<
JSONObject
>
receiver
)
{
...
...
@@ -166,28 +163,7 @@ public class WarplyManager {
RequestBody
loginRequest
=
RequestBody
.
create
(
MediaType
.
get
(
"application/json; charset=utf-8"
),
(
new
JSONObject
(
jsonParams
)).
toString
());
Call
<
ResponseBody
>
logoutCall
=
WarpUtils
.
isJWTEnabled
(
Warply
.
getWarplyContext
())
?
service
.
logoutUserJwt
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
loginRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
)
)
:
service
.
logoutUser
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
loginRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
)
);
Call
<
ResponseBody
>
logoutCall
=
WarpUtils
.
isJWTEnabled
(
Warply
.
getWarplyContext
())
?
service
.
logoutUserJwt
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
loginRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
))
:
service
.
logoutUser
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
loginRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
));
logoutCall
.
enqueue
(
new
Callback
<
ResponseBody
>()
{
@Override
...
...
@@ -261,17 +237,7 @@ public class WarplyManager {
RequestBody
loginRequest
=
RequestBody
.
create
(
MediaType
.
get
(
"application/json; charset=utf-8"
),
(
new
JSONObject
(
jsonParams
)).
toString
());
Call
<
ResponseBody
>
loginCall
=
service
.
cosmoteUser
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
loginRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
),
"Basic MVBQNFhCQzhFYTJBaUdCNkJWZGFGUERlTTNLQ3kzMjU6YzViMzAyZDY5N2FiNGY3NzhiNThhMTg0YzBkZWRmNGU="
);
Call
<
ResponseBody
>
loginCall
=
service
.
cosmoteUser
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
loginRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
),
"Basic MVBQNFhCQzhFYTJBaUdCNkJWZGFGUERlTTNLQ3kzMjU6YzViMzAyZDY5N2FiNGY3NzhiNThhMTg0YzBkZWRmNGU="
);
loginCall
.
enqueue
(
new
Callback
<
ResponseBody
>()
{
@Override
...
...
@@ -287,15 +253,9 @@ public class WarplyManager {
if
(
jobjLoginResponse
!=
null
&&
jobjLoginResponse
.
has
(
"status"
)
&&
jobjLoginResponse
.
optString
(
"status"
,
"2"
).
equals
(
"1"
))
{
JSONObject
tokens
=
jobjLoginResponse
.
optJSONObject
(
"result"
);
if
(
tokens
!=
null
)
{
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
saveClientAccess
(
tokens
.
optString
(
"client_id"
,
""
),
tokens
.
optString
(
"client_secret"
,
""
)
);
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
saveClientAccess
(
tokens
.
optString
(
"client_id"
,
""
),
tokens
.
optString
(
"client_secret"
,
""
));
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
saveAuthAccess
(
tokens
.
optString
(
"access_token"
,
""
),
tokens
.
optString
(
"refresh_token"
,
""
)
);
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
saveAuthAccess
(
tokens
.
optString
(
"access_token"
,
""
),
tokens
.
optString
(
"refresh_token"
,
""
));
JSONObject
newResult
=
new
JSONObject
();
try
{
...
...
@@ -306,8 +266,7 @@ public class WarplyManager {
e
.
printStackTrace
();
receiver
.
onFailure
(
2
);
}
}
else
receiver
.
onFailure
(
2
);
}
else
receiver
.
onFailure
(
2
);
}
else
{
receiver
.
onFailure
(
2
);
}
...
...
@@ -364,15 +323,7 @@ public class WarplyManager {
RequestBody
loginRequest
=
RequestBody
.
create
(
MediaType
.
get
(
"application/json; charset=utf-8"
),
(
new
JSONObject
(
jsonParams
)).
toString
());
Call
<
ResponseBody
>
loginCall
=
service
.
verifyUser
(
loginRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
)
);
Call
<
ResponseBody
>
loginCall
=
service
.
verifyUser
(
loginRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
));
loginCall
.
enqueue
(
new
Callback
<
ResponseBody
>()
{
@Override
...
...
@@ -388,15 +339,9 @@ public class WarplyManager {
if
(
jobjLoginResponse
!=
null
&&
jobjLoginResponse
.
has
(
"result"
)
&&
jobjLoginResponse
.
optString
(
"result"
,
"2"
).
equals
(
"1"
))
{
JSONObject
tokens
=
jobjLoginResponse
.
optJSONObject
(
"tokens"
);
if
(
tokens
!=
null
)
{
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
saveClientAccess
(
tokens
.
optString
(
"client_id"
,
""
),
tokens
.
optString
(
"client_secret"
,
""
)
);
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
saveClientAccess
(
tokens
.
optString
(
"client_id"
,
""
),
tokens
.
optString
(
"client_secret"
,
""
));
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
saveAuthAccess
(
tokens
.
optString
(
"access_token"
,
""
),
tokens
.
optString
(
"refresh_token"
,
""
)
);
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
saveAuthAccess
(
tokens
.
optString
(
"access_token"
,
""
),
tokens
.
optString
(
"refresh_token"
,
""
));
JSONObject
newResult
=
new
JSONObject
();
try
{
...
...
@@ -504,14 +449,10 @@ public class WarplyManager {
ListenableFuture
<
CouponList
>
futureCoupons
=
getCouponsUniversalRetro
(
service
,
0
,
futureUniversal
);
ListenableFuture
<
List
<
Object
>>
allResultsFuture
=
Futures
.
allAsList
(
futureCoupons
);
ListenableFuture
<
CouponList
>
mergedResultFuture
=
Futures
.
transformAsync
(
allResultsFuture
,
results
->
{
CouponList
resultCoupons
=
(
CouponList
)
results
.
get
(
0
);
return
executorService
.
submit
(()
->
resultCoupons
);
},
executorService
);
ListenableFuture
<
CouponList
>
mergedResultFuture
=
Futures
.
transformAsync
(
allResultsFuture
,
results
->
{
CouponList
resultCoupons
=
(
CouponList
)
results
.
get
(
0
);
return
executorService
.
submit
(()
->
resultCoupons
);
},
executorService
);
Futures
.
addCallback
(
mergedResultFuture
,
new
FutureCallback
<
CouponList
>()
{
@Override
...
...
@@ -542,16 +483,12 @@ public class WarplyManager {
ListenableFuture
<
JSONObject
>
futureCampaignAvailability
=
getCampaignAvailability
(
service
);
ListenableFuture
<
List
<
Object
>>
allResultsFuture
=
Futures
.
allAsList
(
futureCampaigns
,
futurePersonalizedCampaigns
,
futureCampaignAvailability
);
ListenableFuture
<
ArrayList
<
Campaign
>>
mergedResultFuture
=
Futures
.
transformAsync
(
allResultsFuture
,
results
->
{
ArrayList
<
Campaign
>
resultCampaigns
=
(
ArrayList
<
Campaign
>)
results
.
get
(
0
);
ArrayList
<
Campaign
>
resultPersonalizedCampaigns
=
(
ArrayList
<
Campaign
>)
results
.
get
(
1
);
JSONObject
resultCampaignsAvailability
=
(
JSONObject
)
results
.
get
(
2
);
return
executorService
.
submit
(()
->
mergeCampaignResults
(
resultCampaigns
,
resultPersonalizedCampaigns
,
resultCampaignsAvailability
));
},
executorService
);
ListenableFuture
<
ArrayList
<
Campaign
>>
mergedResultFuture
=
Futures
.
transformAsync
(
allResultsFuture
,
results
->
{
ArrayList
<
Campaign
>
resultCampaigns
=
(
ArrayList
<
Campaign
>)
results
.
get
(
0
);
ArrayList
<
Campaign
>
resultPersonalizedCampaigns
=
(
ArrayList
<
Campaign
>)
results
.
get
(
1
);
JSONObject
resultCampaignsAvailability
=
(
JSONObject
)
results
.
get
(
2
);
return
executorService
.
submit
(()
->
mergeCampaignResults
(
resultCampaigns
,
resultPersonalizedCampaigns
,
resultCampaignsAvailability
));
},
executorService
);
Futures
.
addCallback
(
mergedResultFuture
,
new
FutureCallback
<
ArrayList
<
Campaign
>>()
{
@Override
...
...
@@ -584,16 +521,7 @@ public class WarplyManager {
jsonParamsCampaigns
.
put
(
"campaigns"
,
jsonParams
);
RequestBody
campaignsRequest
=
RequestBody
.
create
(
MediaType
.
get
(
"application/json; charset=utf-8"
),
(
new
JSONObject
(
jsonParamsCampaigns
)).
toString
());
Call
<
ResponseBody
>
campaignsCall
=
service
.
getCampaigns
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
campaignsRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
)
);
Call
<
ResponseBody
>
campaignsCall
=
service
.
getCampaigns
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
campaignsRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
));
campaignsCall
.
enqueue
(
new
Callback
<
ResponseBody
>()
{
@Override
...
...
@@ -732,17 +660,7 @@ public class WarplyManager {
jsonParamsCampaigns
.
put
(
"campaigns"
,
jsonParams
);
RequestBody
campaignsPersonalizedRequest
=
RequestBody
.
create
(
MediaType
.
get
(
"application/json; charset=utf-8"
),
(
new
JSONObject
(
jsonParamsCampaigns
)).
toString
());
Call
<
ResponseBody
>
campaignsPersonalizedCall
=
service
.
getCampaignsPersonalized
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
campaignsPersonalizedRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
),
"Bearer "
+
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
getAuthValue
(
"access_token"
)
);
Call
<
ResponseBody
>
campaignsPersonalizedCall
=
service
.
getCampaignsPersonalized
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
campaignsPersonalizedRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
),
"Bearer "
+
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
getAuthValue
(
"access_token"
));
campaignsPersonalizedCall
.
enqueue
(
new
Callback
<
ResponseBody
>()
{
@Override
...
...
@@ -914,16 +832,7 @@ public class WarplyManager {
jsonParamsCampaignsAvailability
.
put
(
"coupon"
,
jsonParams
);
RequestBody
campaignsAvailabilityRequest
=
RequestBody
.
create
(
MediaType
.
get
(
"application/json; charset=utf-8"
),
(
new
JSONObject
(
jsonParamsCampaignsAvailability
)).
toString
());
Call
<
ResponseBody
>
campaignsAvailabilityCall
=
service
.
getCampaignsAvailability
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
campaignsAvailabilityRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
)
);
Call
<
ResponseBody
>
campaignsAvailabilityCall
=
service
.
getCampaignsAvailability
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
campaignsAvailabilityRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
));
campaignsAvailabilityCall
.
enqueue
(
new
Callback
<
ResponseBody
>()
{
@Override
...
...
@@ -999,17 +908,7 @@ public class WarplyManager {
jsonParamsMarketPassDetails
.
put
(
"consumer_data"
,
jsonParams
);
RequestBody
marketPassDetailsRequest
=
RequestBody
.
create
(
MediaType
.
get
(
"application/json; charset=utf-8"
),
(
new
JSONObject
(
jsonParamsMarketPassDetails
)).
toString
());
Call
<
ResponseBody
>
marketPassDetailsCall
=
service
.
getMarketPassDetails
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
marketPassDetailsRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
),
"Bearer "
+
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
getAuthValue
(
"access_token"
)
);
Call
<
ResponseBody
>
marketPassDetailsCall
=
service
.
getMarketPassDetails
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
marketPassDetailsRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
),
"Bearer "
+
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
getAuthValue
(
"access_token"
));
marketPassDetailsCall
.
enqueue
(
new
Callback
<
ResponseBody
>()
{
@Override
...
...
@@ -1076,6 +975,132 @@ public class WarplyManager {
return
future
;
}
private
static
ListenableFuture
<
RedeemedSMHistoryModel
>
getSMCouponsUniversalRetro
(
ApiService
service
,
int
tries
,
SettableFuture
<
RedeemedSMHistoryModel
>
future
)
{
String
timeStamp
=
DateFormat
.
format
(
"yyyy-MM-dd hh:mm:ss"
,
System
.
currentTimeMillis
()).
toString
();
String
apiKey
=
WarpUtils
.
getApiKey
(
Warply
.
getWarplyContext
());
String
webId
=
WarpUtils
.
getWebId
(
Warply
.
getWarplyContext
());
Map
<
String
,
Object
>
jsonParamsCoupons
=
new
ArrayMap
<>();
Map
<
String
,
Object
>
jsonParams
=
new
ArrayMap
<>();
jsonParams
.
put
(
"action"
,
"user_coupons"
);
JSONArray
jArr
=
new
JSONArray
();
jArr
.
put
(
"merchant"
);
jArr
.
put
(
"redemption"
);
jsonParams
.
put
(
"details"
,
jArr
);
jsonParams
.
put
(
"language"
,
WarplyProperty
.
getLanguage
(
Warply
.
getWarplyContext
()));
jsonParams
.
put
(
"couponset_types"
,
new
JSONArray
().
put
(
"supermarket"
));
jsonParamsCoupons
.
put
(
"coupon"
,
jsonParams
);
RequestBody
couponsRequest
=
RequestBody
.
create
(
MediaType
.
get
(
"application/json; charset=utf-8"
),
(
new
JSONObject
(
jsonParamsCoupons
)).
toString
());
Call
<
ResponseBody
>
couponsCall
=
service
.
getUserCoupons
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
couponsRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
),
"Bearer "
+
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
getAuthValue
(
"access_token"
));
couponsCall
.
enqueue
(
new
Callback
<
ResponseBody
>()
{
@Override
public
void
onResponse
(
@NonNull
Call
<
ResponseBody
>
call
,
@NonNull
Response
<
ResponseBody
>
response
)
{
if
(
response
.
code
()
==
200
&&
response
.
body
()
!=
null
)
{
JSONObject
jobjCouponsResponse
=
null
;
try
{
jobjCouponsResponse
=
new
JSONObject
(
response
.
body
().
string
());
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
if
(
jobjCouponsResponse
!=
null
&&
jobjCouponsResponse
.
has
(
"status"
)
&&
jobjCouponsResponse
.
optString
(
"status"
,
"2"
).
equals
(
"1"
))
{
LoyaltySDKDynatraceEventModel
dynatraceEvent
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEvent
.
setEventName
(
"custom_success_user_sm_coupons_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEvent
));
JSONArray
jCouponsBody
=
null
;
try
{
jCouponsBody
=
jobjCouponsResponse
.
optJSONArray
(
"result"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
if
(
jCouponsBody
!=
null
)
{
RedeemedSMHistoryModel
redeemedSMHistoryModel
=
new
RedeemedSMHistoryModel
();
CouponList
mCouponRedeemedList
=
new
CouponList
();
final
ExecutorService
executorCoupons
=
Executors
.
newFixedThreadPool
(
1
);
JSONArray
finalJCouponsBody
=
jCouponsBody
;
executorCoupons
.
submit
(()
->
{
float
couponValue
=
0.0f
;
for
(
int
i
=
0
;
i
<
finalJCouponsBody
.
length
();
++
i
)
{
Coupon
tempCoupon
=
new
Coupon
(
finalJCouponsBody
.
optJSONObject
(
i
),
true
);
if
(
tempCoupon
.
getStatus
()
==
0
)
{
mCouponRedeemedList
.
add
(
tempCoupon
);
couponValue
+=
(
float
)
tempCoupon
.
getCouponsetDetails
().
getFinal_price
();
}
}
Collections
.
sort
(
mCouponRedeemedList
,
(
coupon1
,
coupon2
)
->
coupon1
.
getRedeemDate
().
compareTo
(
coupon2
.
getRedeemDate
()));
redeemedSMHistoryModel
.
setTotalRedeemedValue
(
couponValue
);
redeemedSMHistoryModel
.
setRedeemedCouponList
(
mCouponRedeemedList
);
executorCoupons
.
shutdownNow
();
future
.
set
(
redeemedSMHistoryModel
);
});
}
else
{
LoyaltySDKDynatraceEventModel
dynatraceEventElse
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEventElse
.
setEventName
(
"custom_error_user_sm_coupons_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEventElse
));
future
.
set
(
new
RedeemedSMHistoryModel
());
}
}
else
{
LoyaltySDKDynatraceEventModel
dynatraceEvent
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEvent
.
setEventName
(
"custom_error_user_sm_coupons_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEvent
));
future
.
set
(
new
RedeemedSMHistoryModel
());
}
}
else
if
(
response
.
code
()
==
401
)
{
refreshToken
(
new
WarplyRefreshTokenRequest
(),
new
CallbackReceiver
<
JSONObject
>()
{
@Override
public
void
onSuccess
(
JSONObject
result
)
{
int
status
=
result
.
optInt
(
"status"
,
2
);
if
(
status
==
1
)
getSMCouponsUniversalRetro
(
service
,
tries
/*, receiver*/
,
future
);
else
{
// receiver.onFailure(status);
if
(
tries
<
MAX_RETRIES
)
{
getSMCouponsUniversalRetro
(
service
,
(
tries
+
1
),
future
);
}
else
{
// future.set(new CouponList());
future
.
setException
(
new
Throwable
());
}
}
}
@Override
public
void
onFailure
(
int
errorCode
)
{
// receiver.onFailure(errorCode);
if
(
tries
<
MAX_RETRIES
)
{
getSMCouponsUniversalRetro
(
service
,
(
tries
+
1
),
future
);
}
else
{
// future.set(new CouponList());
future
.
setException
(
new
Throwable
());
}
}
});
}
else
{
LoyaltySDKDynatraceEventModel
dynatraceEvent
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEvent
.
setEventName
(
"custom_error_user_sm_coupons_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEvent
));
// future.set(new CouponList());
future
.
setException
(
new
Throwable
());
}
}
@Override
public
void
onFailure
(
@NonNull
Call
<
ResponseBody
>
call
,
@NonNull
Throwable
t
)
{
LoyaltySDKDynatraceEventModel
dynatraceEvent
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEvent
.
setEventName
(
"custom_error_user_sm_coupons_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEvent
));
// future.set(new CouponList());
future
.
setException
(
new
Throwable
());
}
});
return
future
;
}
private
static
ListenableFuture
<
CouponList
>
getCouponsUniversalRetro
(
ApiService
service
,
int
tries
,
SettableFuture
<
CouponList
>
future
)
{
String
timeStamp
=
DateFormat
.
format
(
"yyyy-MM-dd hh:mm:ss"
,
System
.
currentTimeMillis
()).
toString
();
String
apiKey
=
WarpUtils
.
getApiKey
(
Warply
.
getWarplyContext
());
...
...
@@ -1101,17 +1126,7 @@ public class WarplyManager {
jsonParamsCoupons
.
put
(
"coupon"
,
jsonParams
);
RequestBody
couponsRequest
=
RequestBody
.
create
(
MediaType
.
get
(
"application/json; charset=utf-8"
),
(
new
JSONObject
(
jsonParamsCoupons
)).
toString
());
Call
<
ResponseBody
>
couponsCall
=
service
.
getUserCoupons
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
couponsRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
),
"Bearer "
+
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
getAuthValue
(
"access_token"
)
);
Call
<
ResponseBody
>
couponsCall
=
service
.
getUserCoupons
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
couponsRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
),
"Bearer "
+
WarplyDBHelper
.
getInstance
(
Warply
.
getWarplyContext
()).
getAuthValue
(
"access_token"
));
couponsCall
.
enqueue
(
new
Callback
<
ResponseBody
>()
{
@Override
...
...
@@ -1160,6 +1175,11 @@ public class WarplyManager {
future
.
set
(
mCouponRedeemedList
);
});
}
else
{
LoyaltySDKDynatraceEventModel
dynatraceEventElse
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEventElse
.
setEventName
(
"custom_error_user_coupons_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEventElse
));
future
.
set
(
new
CouponList
());
}
}
else
{
LoyaltySDKDynatraceEventModel
dynatraceEvent
=
new
LoyaltySDKDynatraceEventModel
();
...
...
@@ -1225,24 +1245,23 @@ public class WarplyManager {
String
url
=
WarplyProperty
.
getBaseUrl
(
Warply
.
getWarplyContext
())
+
WarpConstants
.
BASE_REMOTE_PAGE_URL
+
sessionUuid
;
Warply
.
INSTANCE
.
getSingleCampaign
(
null
,
url
,
new
CallbackReceiver
<
JSONObject
>()
{
@Override
public
void
onSuccess
(
JSONObject
result
)
{
LoyaltySDKDynatraceEventModel
dynatraceEvent
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEvent
.
setEventName
(
"custom_success_read_campaign_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEvent
));
}
Warply
.
INSTANCE
.
getSingleCampaign
(
null
,
url
,
new
CallbackReceiver
<
JSONObject
>()
{
@Override
public
void
onSuccess
(
JSONObject
result
)
{
LoyaltySDKDynatraceEventModel
dynatraceEvent
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEvent
.
setEventName
(
"custom_success_read_campaign_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEvent
));
}
@Override
public
void
onFailure
(
int
errorCode
)
{
if
(
errorCode
==
301
||
errorCode
==
302
||
errorCode
==
307
||
errorCode
==
308
)
{
LoyaltySDKDynatraceEventModel
dynatraceEvent
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEvent
.
setEventName
(
"custom_success_read_campaign_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEvent
));
}
}
},
null
);
@Override
public
void
onFailure
(
int
errorCode
)
{
if
(
errorCode
==
301
||
errorCode
==
302
||
errorCode
==
307
||
errorCode
==
308
)
{
LoyaltySDKDynatraceEventModel
dynatraceEvent
=
new
LoyaltySDKDynatraceEventModel
();
dynatraceEvent
.
setEventName
(
"custom_success_read_campaign_loyalty"
);
EventBus
.
getDefault
().
post
(
new
WarplyEventBusManager
(
dynatraceEvent
));
}
}
},
null
);
}
public
static
void
getMarketPassDetails
(
final
CallbackReceiver
<
MarketPassDetailsModel
>
receiver
)
{
...
...
@@ -1256,14 +1275,10 @@ public class WarplyManager {
ListenableFuture
<
MarketPassDetailsModel
>
futureMarketPassDetails
=
getMarketPassDetails
(
service
);
ListenableFuture
<
List
<
Object
>>
allResultsFuture
=
Futures
.
allAsList
(
futureMarketPassDetails
);
ListenableFuture
<
MarketPassDetailsModel
>
mergedResultFuture
=
Futures
.
transformAsync
(
allResultsFuture
,
results
->
{
MarketPassDetailsModel
resultMarketPassDetails
=
(
MarketPassDetailsModel
)
results
.
get
(
0
);
return
executorService
.
submit
(()
->
resultMarketPassDetails
);
},
executorService
);
ListenableFuture
<
MarketPassDetailsModel
>
mergedResultFuture
=
Futures
.
transformAsync
(
allResultsFuture
,
results
->
{
MarketPassDetailsModel
resultMarketPassDetails
=
(
MarketPassDetailsModel
)
results
.
get
(
0
);
return
executorService
.
submit
(()
->
resultMarketPassDetails
);
},
executorService
);
Futures
.
addCallback
(
mergedResultFuture
,
new
FutureCallback
<
MarketPassDetailsModel
>()
{
@Override
...
...
@@ -1306,16 +1321,7 @@ public class WarplyManager {
jsonParamsCampaigns
.
put
(
"campaigns"
,
jsonParams
);
RequestBody
campaignsRequest
=
RequestBody
.
create
(
MediaType
.
get
(
"application/json; charset=utf-8"
),
(
new
JSONObject
(
jsonParamsCampaigns
)).
toString
());
Call
<
ResponseBody
>
campaignsCall
=
service
.
getCampaigns
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
campaignsRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
)
);
Call
<
ResponseBody
>
campaignsCall
=
service
.
getCampaigns
(
WarplyProperty
.
getAppUuid
(
Warply
.
getWarplyContext
()),
campaignsRequest
,
timeStamp
,
"android:"
+
Warply
.
getWarplyContext
().
getPackageName
(),
new
WarplyDeviceInfoCollector
(
Warply
.
getWarplyContext
()).
getUniqueDeviceId
(),
"mobile"
,
webId
,
WarpUtils
.
produceSignature
(
apiKey
+
timeStamp
));
campaignsCall
.
enqueue
(
new
Callback
<
ResponseBody
>()
{
@Override
...
...
@@ -1451,14 +1457,10 @@ public class WarplyManager {
ListenableFuture
<
ArrayList
<
Campaign
>>
futureCampaigns
=
getSupermarketCampaignRetro
(
service
);
ListenableFuture
<
List
<
Object
>>
allResultsFuture
=
Futures
.
allAsList
(
futureCampaigns
);
ListenableFuture
<
ArrayList
<
Campaign
>>
mergedResultFuture
=
Futures
.
transformAsync
(
allResultsFuture
,
results
->
{
ArrayList
<
Campaign
>
resultCampaigns
=
(
ArrayList
<
Campaign
>)
results
.
get
(
0
);
return
executorService
.
submit
(()
->
resultCampaigns
);
},
executorService
);
ListenableFuture
<
ArrayList
<
Campaign
>>
mergedResultFuture
=
Futures
.
transformAsync
(
allResultsFuture
,
results
->
{
ArrayList
<
Campaign
>
resultCampaigns
=
(
ArrayList
<
Campaign
>)
results
.
get
(
0
);
return
executorService
.
submit
(()
->
resultCampaigns
);
},
executorService
);
Futures
.
addCallback
(
mergedResultFuture
,
new
FutureCallback
<
ArrayList
<
Campaign
>>()
{
@Override
...
...
@@ -1475,4 +1477,36 @@ public class WarplyManager {
}
},
executorService
);
}
public
static
void
getRedeemedSMHistory
(
final
CallbackReceiver
<
RedeemedSMHistoryModel
>
receiver
)
{
WarpUtils
.
log
(
"************* WARPLY User Redeemed History Request ********************"
);
WarpUtils
.
log
(
"[WARP Trace] WARPLY User Redeemed History Request is active"
);
WarpUtils
.
log
(
"**************************************************"
);
ApiService
service
=
ApiClient
.
getRetrofitInstance
().
create
(
ApiService
.
class
);
ListeningExecutorService
executorService
=
MoreExecutors
.
listeningDecorator
(
Executors
.
newFixedThreadPool
(
1
));
SettableFuture
<
RedeemedSMHistoryModel
>
futureUniversal
=
SettableFuture
.
create
();
ListenableFuture
<
RedeemedSMHistoryModel
>
futureCoupons
=
getSMCouponsUniversalRetro
(
service
,
0
,
futureUniversal
);
ListenableFuture
<
List
<
Object
>>
allResultsFuture
=
Futures
.
allAsList
(
futureCoupons
);
ListenableFuture
<
RedeemedSMHistoryModel
>
mergedResultFuture
=
Futures
.
transformAsync
(
allResultsFuture
,
results
->
{
RedeemedSMHistoryModel
resultCoupons
=
(
RedeemedSMHistoryModel
)
results
.
get
(
0
);
return
executorService
.
submit
(()
->
resultCoupons
);
},
executorService
);
Futures
.
addCallback
(
mergedResultFuture
,
new
FutureCallback
<
RedeemedSMHistoryModel
>()
{
@Override
public
void
onSuccess
(
RedeemedSMHistoryModel
mergedResult
)
{
executorService
.
shutdownNow
();
new
Handler
(
Looper
.
getMainLooper
()).
post
(()
->
receiver
.
onSuccess
(
mergedResult
));
}
@Override
public
void
onFailure
(
Throwable
throwable
)
{
executorService
.
shutdownNow
();
new
Handler
(
Looper
.
getMainLooper
()).
post
(()
->
receiver
.
onFailure
(
2
));
}
},
executorService
);
}
}
...
...
Please
register
or
login
to post a comment