Showing
10 changed files
with
321 additions
and
285 deletions
| ... | @@ -2,25 +2,15 @@ package warp.ly.android_sdk.activities; | ... | @@ -2,25 +2,15 @@ package warp.ly.android_sdk.activities; |
| 2 | 2 | ||
| 3 | import android.content.Intent; | 3 | import android.content.Intent; |
| 4 | import android.os.Bundle; | 4 | import android.os.Bundle; |
| 5 | -import android.widget.Toast; | ||
| 6 | - | ||
| 7 | -import org.json.JSONObject; | ||
| 8 | 5 | ||
| 9 | import java.util.Timer; | 6 | import java.util.Timer; |
| 10 | import java.util.TimerTask; | 7 | import java.util.TimerTask; |
| 11 | 8 | ||
| 12 | import ly.warp.sdk.Warply; | 9 | import ly.warp.sdk.Warply; |
| 13 | import ly.warp.sdk.activities.BaseFragmentActivity; | 10 | import ly.warp.sdk.activities.BaseFragmentActivity; |
| 14 | -import ly.warp.sdk.db.WarplyDBHelper; | ||
| 15 | -import ly.warp.sdk.io.callbacks.CallbackReceiver; | ||
| 16 | import ly.warp.sdk.io.callbacks.SimpleCallbackReceiver; | 11 | import ly.warp.sdk.io.callbacks.SimpleCallbackReceiver; |
| 17 | import ly.warp.sdk.io.callbacks.WarplyReadyCallback; | 12 | import ly.warp.sdk.io.callbacks.WarplyReadyCallback; |
| 18 | -import ly.warp.sdk.io.request.WarplyConsumerRequest; | ||
| 19 | -import ly.warp.sdk.io.request.WarplyCosmoteUserRequest; | ||
| 20 | -import ly.warp.sdk.io.request.WarplyLoginRequest; | ||
| 21 | -import ly.warp.sdk.io.request.WarplyVerifyTicketRequest; | ||
| 22 | import ly.warp.sdk.utils.WarplyInitializer; | 13 | import ly.warp.sdk.utils.WarplyInitializer; |
| 23 | -import ly.warp.sdk.utils.managers.WarplyManager; | ||
| 24 | import warp.ly.android_sdk.R; | 14 | import warp.ly.android_sdk.R; |
| 25 | 15 | ||
| 26 | public class SplashActivity extends BaseActivity { | 16 | public class SplashActivity extends BaseActivity { |
| ... | @@ -35,14 +25,7 @@ public class SplashActivity extends BaseActivity { | ... | @@ -35,14 +25,7 @@ public class SplashActivity extends BaseActivity { |
| 35 | mWarplyInitializer = Warply.getInitializer(this, new WarplyReadyCallback() { | 25 | mWarplyInitializer = Warply.getInitializer(this, new WarplyReadyCallback() { |
| 36 | @Override | 26 | @Override |
| 37 | public void onWarplyReady() { | 27 | public void onWarplyReady() { |
| 38 | - if (!WarplyDBHelper.getInstance(SplashActivity.this).isTableNotEmpty("auth")) { | 28 | + startNextActivity(); |
| 39 | - //6012049321, 6012049322, 6012049323, 7000000831 history, 7000000826, 7000000831 shared coupons | ||
| 40 | - //prod 6006552990, prod 6005892749, live 3000184910,prod 7000070282, live 3000136179 | ||
| 41 | - WarplyManager.getCosmoteUser("7000001053", mLoginReceiver); | ||
| 42 | -// WarplyManager.verifyTicket("", "7000023699", mLoginReceiver); | ||
| 43 | - } else { | ||
| 44 | - startNextActivity(); | ||
| 45 | - } | ||
| 46 | } | 29 | } |
| 47 | 30 | ||
| 48 | @Override | 31 | @Override |
| ... | @@ -93,19 +76,4 @@ public class SplashActivity extends BaseActivity { | ... | @@ -93,19 +76,4 @@ public class SplashActivity extends BaseActivity { |
| 93 | }, MIN_SPLASH_TIME); | 76 | }, MIN_SPLASH_TIME); |
| 94 | } | 77 | } |
| 95 | } | 78 | } |
| 96 | - | ||
| 97 | - private final CallbackReceiver<JSONObject> mLoginReceiver = new CallbackReceiver<JSONObject>() { | ||
| 98 | - @Override | ||
| 99 | - public void onSuccess(JSONObject result) { | ||
| 100 | - if (result != null && result.optInt("status") == 1) { | ||
| 101 | - startNextActivity(); | ||
| 102 | - } | ||
| 103 | - } | ||
| 104 | - | ||
| 105 | - @Override | ||
| 106 | - public void onFailure(int errorCode) { | ||
| 107 | -// startNextActivity(); | ||
| 108 | - Toast.makeText(SplashActivity.this, "LOGIN ERROR", Toast.LENGTH_SHORT).show(); | ||
| 109 | - } | ||
| 110 | - }; | ||
| 111 | } | 79 | } | ... | ... |
| ... | @@ -19,6 +19,7 @@ import com.google.android.material.navigation.NavigationBarView; | ... | @@ -19,6 +19,7 @@ import com.google.android.material.navigation.NavigationBarView; |
| 19 | import java.util.ArrayList; | 19 | import java.util.ArrayList; |
| 20 | 20 | ||
| 21 | import ly.warp.sdk.R; | 21 | import ly.warp.sdk.R; |
| 22 | +import ly.warp.sdk.db.WarplyDBHelper; | ||
| 22 | import ly.warp.sdk.fragments.HomeFragment; | 23 | import ly.warp.sdk.fragments.HomeFragment; |
| 23 | import ly.warp.sdk.fragments.LoyaltyFragment; | 24 | import ly.warp.sdk.fragments.LoyaltyFragment; |
| 24 | import ly.warp.sdk.fragments.MyRewardsFragment; | 25 | import ly.warp.sdk.fragments.MyRewardsFragment; |
| ... | @@ -53,9 +54,11 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation | ... | @@ -53,9 +54,11 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation |
| 53 | 54 | ||
| 54 | mBottomNavigationView = findViewById(R.id.bt_tabs); | 55 | mBottomNavigationView = findViewById(R.id.bt_tabs); |
| 55 | 56 | ||
| 56 | - WarplyManager.getUserCouponsWithCouponsets(mUserCouponsReceiver); | 57 | + if (WarplyDBHelper.getInstance(this).isTableNotEmpty("auth")) { |
| 57 | - WarplyManager.getCampaigns(mCampaignsCallback); | 58 | + WarplyManager.getUserCouponsWithCouponsets(mUserCouponsReceiver); |
| 58 | - WarplyManager.getUnifiedCouponsDeals(mUnifiedCallback); | 59 | + WarplyManager.getCampaigns(mCampaignsCallback); |
| 60 | + WarplyManager.getUnifiedCouponsDeals(mUnifiedCallback); | ||
| 61 | + } | ||
| 59 | 62 | ||
| 60 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { | 63 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { |
| 61 | if (!hasNotificationPermission()) { | 64 | if (!hasNotificationPermission()) { | ... | ... |
| ... | @@ -40,7 +40,7 @@ public class WarplyDBHelper extends SQLiteOpenHelper { | ... | @@ -40,7 +40,7 @@ public class WarplyDBHelper extends SQLiteOpenHelper { |
| 40 | } | 40 | } |
| 41 | 41 | ||
| 42 | private static final String DB_NAME = "warply.db"; | 42 | private static final String DB_NAME = "warply.db"; |
| 43 | - private static final int DB_VERSION = 10; | 43 | + private static final int DB_VERSION = 12; |
| 44 | private static final String KEY_CIPHER = "tn#mpOl3v3Dy1pr@W"; | 44 | private static final String KEY_CIPHER = "tn#mpOl3v3Dy1pr@W"; |
| 45 | 45 | ||
| 46 | //------------------------------ Fields -----------------------------// | 46 | //------------------------------ Fields -----------------------------// |
| ... | @@ -154,6 +154,19 @@ public class WarplyDBHelper extends SQLiteOpenHelper { | ... | @@ -154,6 +154,19 @@ public class WarplyDBHelper extends SQLiteOpenHelper { |
| 154 | return mDb; | 154 | return mDb; |
| 155 | } | 155 | } |
| 156 | 156 | ||
| 157 | + private SQLiteDatabase getReadableDb() { | ||
| 158 | + if (mDb == null) | ||
| 159 | + mDb = getReadableDatabase(KEY_CIPHER); | ||
| 160 | + return mDb; | ||
| 161 | + } | ||
| 162 | + | ||
| 163 | + private void closeDb() { | ||
| 164 | + if (mDb != null && mDb.isOpen()) { | ||
| 165 | + mDb.close(); | ||
| 166 | + mDb = null; | ||
| 167 | + } | ||
| 168 | + } | ||
| 169 | + | ||
| 157 | @Override | 170 | @Override |
| 158 | public void onCreate(SQLiteDatabase db) { | 171 | public void onCreate(SQLiteDatabase db) { |
| 159 | db.execSQL(CREATE_TABLE_REQUESTS); | 172 | db.execSQL(CREATE_TABLE_REQUESTS); |
| ... | @@ -215,27 +228,36 @@ public class WarplyDBHelper extends SQLiteOpenHelper { | ... | @@ -215,27 +228,36 @@ public class WarplyDBHelper extends SQLiteOpenHelper { |
| 215 | public synchronized void clearTable(String tableName) { | 228 | public synchronized void clearTable(String tableName) { |
| 216 | SQLiteDatabase db = getDb(); | 229 | SQLiteDatabase db = getDb(); |
| 217 | db.delete(tableName, null, null); | 230 | db.delete(tableName, null, null); |
| 231 | + | ||
| 232 | + closeDb(); | ||
| 218 | } | 233 | } |
| 219 | 234 | ||
| 220 | public synchronized void insert(String tableName, ContentValues values) { | 235 | public synchronized void insert(String tableName, ContentValues values) { |
| 221 | SQLiteDatabase db = getDb(); | 236 | SQLiteDatabase db = getDb(); |
| 222 | db.insert(tableName, null, values); | 237 | db.insert(tableName, null, values); |
| 238 | + | ||
| 239 | + closeDb(); | ||
| 223 | } | 240 | } |
| 224 | 241 | ||
| 225 | public synchronized void update(String tableName, ContentValues values) { | 242 | public synchronized void update(String tableName, ContentValues values) { |
| 226 | SQLiteDatabase db = getDb(); | 243 | SQLiteDatabase db = getDb(); |
| 227 | db.update(tableName, values, null, null); | 244 | db.update(tableName, values, null, null); |
| 245 | + | ||
| 246 | + closeDb(); | ||
| 228 | } | 247 | } |
| 229 | 248 | ||
| 230 | public synchronized boolean isTableNotEmpty(String tableName) { | 249 | public synchronized boolean isTableNotEmpty(String tableName) { |
| 231 | - Cursor cursor = getDb().rawQuery("SELECT COUNT(*) FROM " + tableName, | 250 | + Cursor cursor = getReadableDb().rawQuery("SELECT COUNT(*) FROM " + tableName, |
| 232 | null); | 251 | null); |
| 233 | if (cursor != null && cursor.moveToFirst()) { | 252 | if (cursor != null && cursor.moveToFirst()) { |
| 234 | boolean isNotEmpty = cursor.getInt(0) > 0; | 253 | boolean isNotEmpty = cursor.getInt(0) > 0; |
| 235 | cursor.close(); | 254 | cursor.close(); |
| 255 | + closeDb(); | ||
| 236 | return isNotEmpty; | 256 | return isNotEmpty; |
| 237 | - } else | 257 | + } else { |
| 258 | + closeDb(); | ||
| 238 | return false; | 259 | return false; |
| 260 | + } | ||
| 239 | } | 261 | } |
| 240 | 262 | ||
| 241 | //------------------------------ Auth -----------------------------// | 263 | //------------------------------ Auth -----------------------------// |
| ... | @@ -266,24 +288,30 @@ public class WarplyDBHelper extends SQLiteOpenHelper { | ... | @@ -266,24 +288,30 @@ public class WarplyDBHelper extends SQLiteOpenHelper { |
| 266 | @Nullable | 288 | @Nullable |
| 267 | public synchronized String getAuthValue(String columnName) { | 289 | public synchronized String getAuthValue(String columnName) { |
| 268 | String columnValue = ""; | 290 | String columnValue = ""; |
| 269 | - Cursor cursor = getDb().query(TABLE_AUTH, new String[]{columnName}, null, null, null, null, null); | 291 | + Cursor cursor = getReadableDb().query(TABLE_AUTH, new String[]{columnName}, null, null, null, null, null); |
| 270 | if (cursor != null && cursor.moveToFirst()) { | 292 | if (cursor != null && cursor.moveToFirst()) { |
| 271 | cursor.moveToFirst(); | 293 | cursor.moveToFirst(); |
| 272 | columnValue = cursor.getString(cursor.getColumnIndex(columnName)); | 294 | columnValue = cursor.getString(cursor.getColumnIndex(columnName)); |
| 273 | cursor.close(); | 295 | cursor.close(); |
| 274 | } | 296 | } |
| 297 | + | ||
| 298 | + closeDb(); | ||
| 299 | + | ||
| 275 | return columnValue; | 300 | return columnValue; |
| 276 | } | 301 | } |
| 277 | 302 | ||
| 278 | @Nullable | 303 | @Nullable |
| 279 | public synchronized String getClientValue(String columnName) { | 304 | public synchronized String getClientValue(String columnName) { |
| 280 | String columnValue = ""; | 305 | String columnValue = ""; |
| 281 | - Cursor cursor = getDb().query(TABLE_CLIENT, new String[]{columnName}, null, null, null, null, null); | 306 | + Cursor cursor = getReadableDb().query(TABLE_CLIENT, new String[]{columnName}, null, null, null, null, null); |
| 282 | if (cursor != null && cursor.moveToFirst()) { | 307 | if (cursor != null && cursor.moveToFirst()) { |
| 283 | cursor.moveToFirst(); | 308 | cursor.moveToFirst(); |
| 284 | columnValue = cursor.getString(cursor.getColumnIndex(columnName)); | 309 | columnValue = cursor.getString(cursor.getColumnIndex(columnName)); |
| 285 | cursor.close(); | 310 | cursor.close(); |
| 286 | } | 311 | } |
| 312 | + | ||
| 313 | + closeDb(); | ||
| 314 | + | ||
| 287 | return columnValue; | 315 | return columnValue; |
| 288 | } | 316 | } |
| 289 | 317 | ||
| ... | @@ -297,24 +325,21 @@ public class WarplyDBHelper extends SQLiteOpenHelper { | ... | @@ -297,24 +325,21 @@ public class WarplyDBHelper extends SQLiteOpenHelper { |
| 297 | 325 | ||
| 298 | //------------------------------ Api requests -----------------------------// | 326 | //------------------------------ Api requests -----------------------------// |
| 299 | public synchronized Cursor getAllRequests() { | 327 | public synchronized Cursor getAllRequests() { |
| 300 | - | 328 | + return getReadableDb().query(TABLE_REQUESTS, |
| 301 | - return getDb().query(TABLE_REQUESTS, | ||
| 302 | new String[]{KEY_REQUESTS_ID, | 329 | new String[]{KEY_REQUESTS_ID, |
| 303 | KEY_REQUESTS_MICROAPP, KEY_REQUESTS_ENTITY}, null, null, null, null, | 330 | KEY_REQUESTS_MICROAPP, KEY_REQUESTS_ENTITY}, null, null, null, null, |
| 304 | KEY_REQUESTS_DATE_ADDED + " asc", "20"); | 331 | KEY_REQUESTS_DATE_ADDED + " asc", "20"); |
| 305 | } | 332 | } |
| 306 | 333 | ||
| 307 | public synchronized Cursor getAllPushRequests() { | 334 | public synchronized Cursor getAllPushRequests() { |
| 308 | - | 335 | + return getReadableDb().query(TABLE_PUSH_REQUESTS, |
| 309 | - return getDb().query(TABLE_PUSH_REQUESTS, | ||
| 310 | new String[]{KEY_REQUESTS_ID, | 336 | new String[]{KEY_REQUESTS_ID, |
| 311 | KEY_REQUESTS_MICROAPP, KEY_REQUESTS_ENTITY}, null, null, null, null, | 337 | KEY_REQUESTS_MICROAPP, KEY_REQUESTS_ENTITY}, null, null, null, null, |
| 312 | KEY_REQUESTS_DATE_ADDED + " asc", "20"); | 338 | KEY_REQUESTS_DATE_ADDED + " asc", "20"); |
| 313 | } | 339 | } |
| 314 | 340 | ||
| 315 | public synchronized Cursor getAllPushAckRequests() { | 341 | public synchronized Cursor getAllPushAckRequests() { |
| 316 | - | 342 | + return getReadableDb().query(TABLE_PUSH_ACK_REQUESTS, |
| 317 | - return getDb().query(TABLE_PUSH_ACK_REQUESTS, | ||
| 318 | new String[]{KEY_REQUESTS_ID, | 343 | new String[]{KEY_REQUESTS_ID, |
| 319 | KEY_REQUESTS_MICROAPP, KEY_REQUESTS_ENTITY}, null, null, null, null, | 344 | KEY_REQUESTS_MICROAPP, KEY_REQUESTS_ENTITY}, null, null, null, null, |
| 320 | KEY_REQUESTS_DATE_ADDED + " asc", "20"); | 345 | KEY_REQUESTS_DATE_ADDED + " asc", "20"); |
| ... | @@ -375,7 +400,6 @@ public class WarplyDBHelper extends SQLiteOpenHelper { | ... | @@ -375,7 +400,6 @@ public class WarplyDBHelper extends SQLiteOpenHelper { |
| 375 | } | 400 | } |
| 376 | 401 | ||
| 377 | public synchronized void deleteRequests(Long... ids) { | 402 | public synchronized void deleteRequests(Long... ids) { |
| 378 | - | ||
| 379 | StringBuilder strFilter = new StringBuilder(); | 403 | StringBuilder strFilter = new StringBuilder(); |
| 380 | for (int i = 0; i < ids.length; i++) { | 404 | for (int i = 0; i < ids.length; i++) { |
| 381 | if (i > 0) { | 405 | if (i > 0) { |
| ... | @@ -386,10 +410,11 @@ public class WarplyDBHelper extends SQLiteOpenHelper { | ... | @@ -386,10 +410,11 @@ public class WarplyDBHelper extends SQLiteOpenHelper { |
| 386 | strFilter.append(ids[i]); | 410 | strFilter.append(ids[i]); |
| 387 | } | 411 | } |
| 388 | getDb().delete(TABLE_REQUESTS, strFilter.toString(), null); | 412 | getDb().delete(TABLE_REQUESTS, strFilter.toString(), null); |
| 413 | + | ||
| 414 | + closeDb(); | ||
| 389 | } | 415 | } |
| 390 | 416 | ||
| 391 | public synchronized void deletePushRequests(Long... ids) { | 417 | public synchronized void deletePushRequests(Long... ids) { |
| 392 | - | ||
| 393 | StringBuilder strFilter = new StringBuilder(); | 418 | StringBuilder strFilter = new StringBuilder(); |
| 394 | for (int i = 0; i < ids.length; i++) { | 419 | for (int i = 0; i < ids.length; i++) { |
| 395 | if (i > 0) { | 420 | if (i > 0) { |
| ... | @@ -400,10 +425,11 @@ public class WarplyDBHelper extends SQLiteOpenHelper { | ... | @@ -400,10 +425,11 @@ public class WarplyDBHelper extends SQLiteOpenHelper { |
| 400 | strFilter.append(ids[i]); | 425 | strFilter.append(ids[i]); |
| 401 | } | 426 | } |
| 402 | getDb().delete(TABLE_PUSH_REQUESTS, strFilter.toString(), null); | 427 | getDb().delete(TABLE_PUSH_REQUESTS, strFilter.toString(), null); |
| 428 | + | ||
| 429 | + closeDb(); | ||
| 403 | } | 430 | } |
| 404 | 431 | ||
| 405 | public synchronized void deletePushAckRequests(Long... ids) { | 432 | public synchronized void deletePushAckRequests(Long... ids) { |
| 406 | - | ||
| 407 | StringBuilder strFilter = new StringBuilder(); | 433 | StringBuilder strFilter = new StringBuilder(); |
| 408 | for (int i = 0; i < ids.length; i++) { | 434 | for (int i = 0; i < ids.length; i++) { |
| 409 | if (i > 0) { | 435 | if (i > 0) { |
| ... | @@ -414,45 +440,55 @@ public class WarplyDBHelper extends SQLiteOpenHelper { | ... | @@ -414,45 +440,55 @@ public class WarplyDBHelper extends SQLiteOpenHelper { |
| 414 | strFilter.append(ids[i]); | 440 | strFilter.append(ids[i]); |
| 415 | } | 441 | } |
| 416 | getDb().delete(TABLE_PUSH_ACK_REQUESTS, strFilter.toString(), null); | 442 | getDb().delete(TABLE_PUSH_ACK_REQUESTS, strFilter.toString(), null); |
| 443 | + | ||
| 444 | + closeDb(); | ||
| 417 | } | 445 | } |
| 418 | 446 | ||
| 419 | public synchronized boolean isForceRequestsExist() { | 447 | public synchronized boolean isForceRequestsExist() { |
| 420 | - Cursor cursor = getDb().query(TABLE_REQUESTS, null, KEY_REQUESTS_FORCE + "=1", | 448 | + Cursor cursor = getReadableDb().query(TABLE_REQUESTS, null, KEY_REQUESTS_FORCE + "=1", |
| 421 | null, null, null, null); | 449 | null, null, null, null); |
| 422 | boolean result = false; | 450 | boolean result = false; |
| 423 | if (cursor != null) { | 451 | if (cursor != null) { |
| 424 | result = cursor.getCount() > 0; | 452 | result = cursor.getCount() > 0; |
| 425 | cursor.close(); | 453 | cursor.close(); |
| 426 | } | 454 | } |
| 455 | + | ||
| 456 | + closeDb(); | ||
| 457 | + | ||
| 427 | return result; | 458 | return result; |
| 428 | } | 459 | } |
| 429 | 460 | ||
| 430 | public synchronized boolean isForcePushRequestsExist() { | 461 | public synchronized boolean isForcePushRequestsExist() { |
| 431 | - Cursor cursor = getDb().query(TABLE_PUSH_REQUESTS, null, KEY_REQUESTS_FORCE + "=1", | 462 | + Cursor cursor = getReadableDb().query(TABLE_PUSH_REQUESTS, null, KEY_REQUESTS_FORCE + "=1", |
| 432 | null, null, null, null); | 463 | null, null, null, null); |
| 433 | boolean result = false; | 464 | boolean result = false; |
| 434 | if (cursor != null) { | 465 | if (cursor != null) { |
| 435 | result = cursor.getCount() > 0; | 466 | result = cursor.getCount() > 0; |
| 436 | cursor.close(); | 467 | cursor.close(); |
| 437 | } | 468 | } |
| 469 | + | ||
| 470 | + closeDb(); | ||
| 471 | + | ||
| 438 | return result; | 472 | return result; |
| 439 | } | 473 | } |
| 440 | 474 | ||
| 441 | public synchronized boolean isForcePushAckRequestsExist() { | 475 | public synchronized boolean isForcePushAckRequestsExist() { |
| 442 | - Cursor cursor = getDb().query(TABLE_PUSH_ACK_REQUESTS, null, KEY_REQUESTS_FORCE + "=1", | 476 | + Cursor cursor = getReadableDb().query(TABLE_PUSH_ACK_REQUESTS, null, KEY_REQUESTS_FORCE + "=1", |
| 443 | null, null, null, null); | 477 | null, null, null, null); |
| 444 | boolean result = false; | 478 | boolean result = false; |
| 445 | if (cursor != null) { | 479 | if (cursor != null) { |
| 446 | result = cursor.getCount() > 0; | 480 | result = cursor.getCount() > 0; |
| 447 | cursor.close(); | 481 | cursor.close(); |
| 448 | } | 482 | } |
| 483 | + | ||
| 484 | + closeDb(); | ||
| 485 | + | ||
| 449 | return result; | 486 | return result; |
| 450 | } | 487 | } |
| 451 | 488 | ||
| 452 | //------------------------------ Tags -----------------------------// | 489 | //------------------------------ Tags -----------------------------// |
| 453 | public synchronized void saveTags(String[] tags) { | 490 | public synchronized void saveTags(String[] tags) { |
| 454 | if (tags != null && tags.length > 0) { | 491 | if (tags != null && tags.length > 0) { |
| 455 | - | ||
| 456 | try { | 492 | try { |
| 457 | getDb().beginTransaction(); | 493 | getDb().beginTransaction(); |
| 458 | ContentValues values = new ContentValues(); | 494 | ContentValues values = new ContentValues(); |
| ... | @@ -464,11 +500,14 @@ public class WarplyDBHelper extends SQLiteOpenHelper { | ... | @@ -464,11 +500,14 @@ public class WarplyDBHelper extends SQLiteOpenHelper { |
| 464 | getDb().setTransactionSuccessful(); | 500 | getDb().setTransactionSuccessful(); |
| 465 | 501 | ||
| 466 | } catch (SQLException e) { | 502 | } catch (SQLException e) { |
| 503 | + closeDb(); | ||
| 467 | if (WarpConstants.DEBUG) { | 504 | if (WarpConstants.DEBUG) { |
| 468 | e.printStackTrace(); | 505 | e.printStackTrace(); |
| 469 | } | 506 | } |
| 470 | } finally { | 507 | } finally { |
| 471 | getDb().endTransaction(); | 508 | getDb().endTransaction(); |
| 509 | + | ||
| 510 | + closeDb(); | ||
| 472 | } | 511 | } |
| 473 | } | 512 | } |
| 474 | } | 513 | } |
| ... | @@ -505,6 +544,7 @@ public class WarplyDBHelper extends SQLiteOpenHelper { | ... | @@ -505,6 +544,7 @@ public class WarplyDBHelper extends SQLiteOpenHelper { |
| 505 | strFilter.append("'"); | 544 | strFilter.append("'"); |
| 506 | } | 545 | } |
| 507 | getDb().delete(TABLE_TAGS, strFilter.toString(), null); | 546 | getDb().delete(TABLE_TAGS, strFilter.toString(), null); |
| 547 | + closeDb(); | ||
| 508 | } | 548 | } |
| 509 | 549 | ||
| 510 | public synchronized void removeAllTags() { | 550 | public synchronized void removeAllTags() { |
| ... | @@ -515,7 +555,7 @@ public class WarplyDBHelper extends SQLiteOpenHelper { | ... | @@ -515,7 +555,7 @@ public class WarplyDBHelper extends SQLiteOpenHelper { |
| 515 | public synchronized String[] getTags() { | 555 | public synchronized String[] getTags() { |
| 516 | 556 | ||
| 517 | List<String> tags = null; | 557 | List<String> tags = null; |
| 518 | - Cursor cursor = getDb().query(TABLE_TAGS, null, null, null, null, null, null); | 558 | + Cursor cursor = getReadableDb().query(TABLE_TAGS, null, null, null, null, null, null); |
| 519 | if (cursor != null) { | 559 | if (cursor != null) { |
| 520 | 560 | ||
| 521 | tags = new ArrayList<>(cursor.getCount()); | 561 | tags = new ArrayList<>(cursor.getCount()); |
| ... | @@ -525,6 +565,9 @@ public class WarplyDBHelper extends SQLiteOpenHelper { | ... | @@ -525,6 +565,9 @@ public class WarplyDBHelper extends SQLiteOpenHelper { |
| 525 | } | 565 | } |
| 526 | cursor.close(); | 566 | cursor.close(); |
| 527 | } | 567 | } |
| 568 | + | ||
| 569 | + closeDb(); | ||
| 570 | + | ||
| 528 | return tags != null ? tags.toArray(new String[tags.size()]) : null; | 571 | return tags != null ? tags.toArray(new String[tags.size()]) : null; |
| 529 | } | 572 | } |
| 530 | 573 | ... | ... |
| ... | @@ -5,6 +5,7 @@ import android.os.Bundle; | ... | @@ -5,6 +5,7 @@ import android.os.Bundle; |
| 5 | import android.view.LayoutInflater; | 5 | import android.view.LayoutInflater; |
| 6 | import android.view.View; | 6 | import android.view.View; |
| 7 | import android.view.ViewGroup; | 7 | import android.view.ViewGroup; |
| 8 | +import android.widget.EditText; | ||
| 8 | import android.widget.ImageView; | 9 | import android.widget.ImageView; |
| 9 | import android.widget.LinearLayout; | 10 | import android.widget.LinearLayout; |
| 10 | import android.widget.RelativeLayout; | 11 | import android.widget.RelativeLayout; |
| ... | @@ -12,10 +13,7 @@ import android.widget.TextView; | ... | @@ -12,10 +13,7 @@ import android.widget.TextView; |
| 12 | import android.widget.Toast; | 13 | import android.widget.Toast; |
| 13 | 14 | ||
| 14 | import androidx.annotation.NonNull; | 15 | import androidx.annotation.NonNull; |
| 15 | -import androidx.constraintlayout.widget.ConstraintLayout; | ||
| 16 | import androidx.fragment.app.Fragment; | 16 | import androidx.fragment.app.Fragment; |
| 17 | -import androidx.recyclerview.widget.LinearLayoutManager; | ||
| 18 | -import androidx.recyclerview.widget.RecyclerView; | ||
| 19 | import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; | 17 | import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; |
| 20 | 18 | ||
| 21 | import org.json.JSONObject; | 19 | import org.json.JSONObject; |
| ... | @@ -23,28 +21,24 @@ import org.json.JSONObject; | ... | @@ -23,28 +21,24 @@ import org.json.JSONObject; |
| 23 | import java.util.ArrayList; | 21 | import java.util.ArrayList; |
| 24 | 22 | ||
| 25 | import ly.warp.sdk.R; | 23 | import ly.warp.sdk.R; |
| 26 | -import ly.warp.sdk.activities.ActiveCouponsActivity; | ||
| 27 | -import ly.warp.sdk.activities.BaseFragmentActivity; | ||
| 28 | import ly.warp.sdk.activities.TelematicsActivity; | 24 | import ly.warp.sdk.activities.TelematicsActivity; |
| 29 | import ly.warp.sdk.activities.TelematicsHistoryActivity; | 25 | import ly.warp.sdk.activities.TelematicsHistoryActivity; |
| 30 | -import ly.warp.sdk.activities.WarpViewActivity; | 26 | +import ly.warp.sdk.db.WarplyDBHelper; |
| 31 | import ly.warp.sdk.io.callbacks.CallbackReceiver; | 27 | import ly.warp.sdk.io.callbacks.CallbackReceiver; |
| 32 | import ly.warp.sdk.io.models.Campaign; | 28 | import ly.warp.sdk.io.models.Campaign; |
| 33 | import ly.warp.sdk.io.models.CouponList; | 29 | import ly.warp.sdk.io.models.CouponList; |
| 34 | import ly.warp.sdk.io.models.UnifiedCoupon; | 30 | import ly.warp.sdk.io.models.UnifiedCoupon; |
| 35 | -import ly.warp.sdk.io.request.WarplyGetCampaignsRequest; | ||
| 36 | import ly.warp.sdk.utils.WarplyManagerHelper; | 31 | import ly.warp.sdk.utils.WarplyManagerHelper; |
| 37 | import ly.warp.sdk.utils.managers.WarplyManager; | 32 | import ly.warp.sdk.utils.managers.WarplyManager; |
| 38 | -import ly.warp.sdk.views.adapters.HomeCampaignAdapter; | ||
| 39 | 33 | ||
| 40 | public class HomeFragment extends Fragment implements View.OnClickListener, SwipeRefreshLayout.OnRefreshListener { | 34 | public class HomeFragment extends Fragment implements View.OnClickListener, SwipeRefreshLayout.OnRefreshListener { |
| 41 | 35 | ||
| 42 | - private RelativeLayout mOptionOne, mOptionTwo, mOptionThree, mRlDriving, mRlDrivingHistory; | 36 | + private RelativeLayout mOptionOne, mOptionTwo, mOptionThree, mRlDriving, |
| 43 | - private LinearLayout mLlBillPayment; | 37 | + mRlDrivingHistory, mPbLoading; |
| 44 | - private TextView mTvUsername, mTvActiveCoupons; | 38 | + private TextView mTvUsername; |
| 45 | - private ConstraintLayout mClActiveCoupons; | ||
| 46 | - private ImageView mIvStepsActivity; | ||
| 47 | private SwipeRefreshLayout mSwipeRefresh; | 39 | private SwipeRefreshLayout mSwipeRefresh; |
| 40 | + private EditText mEtGuid; | ||
| 41 | + private LinearLayout mLlAuthLogin, mLlAuthLogout; | ||
| 48 | 42 | ||
| 49 | @Override | 43 | @Override |
| 50 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { | 44 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { |
| ... | @@ -74,17 +68,6 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Swip | ... | @@ -74,17 +68,6 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Swip |
| 74 | mOptionThreeText.setText("1"); | 68 | mOptionThreeText.setText("1"); |
| 75 | mOptionThreeImage.setImageResource(R.drawable.tv_option); | 69 | mOptionThreeImage.setImageResource(R.drawable.tv_option); |
| 76 | 70 | ||
| 77 | - mClActiveCoupons = view.findViewById(R.id.cl_coupon); | ||
| 78 | - mTvActiveCoupons = mClActiveCoupons.findViewById(R.id.tv_active_coupons); | ||
| 79 | - mTvActiveCoupons.setText(String.format(getResources().getString(R.string.cos_active_coupons), String.valueOf(WarplyManagerHelper.getCouponList().size()))); | ||
| 80 | - mClActiveCoupons.setOnClickListener(this); | ||
| 81 | - | ||
| 82 | - mLlBillPayment = view.findViewById(R.id.ll_bill_payment); | ||
| 83 | - mLlBillPayment.setOnClickListener(this); | ||
| 84 | - | ||
| 85 | - mIvStepsActivity = view.findViewById(R.id.iv_settings); | ||
| 86 | - mIvStepsActivity.setOnClickListener(this); | ||
| 87 | - | ||
| 88 | mTvUsername = view.findViewById(R.id.welcome_user_txt); | 71 | mTvUsername = view.findViewById(R.id.welcome_user_txt); |
| 89 | if (WarplyManagerHelper.getConsumer() != null) | 72 | if (WarplyManagerHelper.getConsumer() != null) |
| 90 | mTvUsername.setText(String.format(getResources().getString(R.string.welcome_user), | 73 | mTvUsername.setText(String.format(getResources().getString(R.string.welcome_user), |
| ... | @@ -94,6 +77,25 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Swip | ... | @@ -94,6 +77,25 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Swip |
| 94 | mRlDriving.setOnClickListener(this); | 77 | mRlDriving.setOnClickListener(this); |
| 95 | mRlDrivingHistory = view.findViewById(R.id.rl_driving_history); | 78 | mRlDrivingHistory = view.findViewById(R.id.rl_driving_history); |
| 96 | mRlDrivingHistory.setOnClickListener(this); | 79 | mRlDrivingHistory.setOnClickListener(this); |
| 80 | + | ||
| 81 | + mPbLoading = view.findViewById(R.id.pb_loading); | ||
| 82 | + mPbLoading.setOnTouchListener((v, event) -> true); | ||
| 83 | + | ||
| 84 | + mEtGuid = view.findViewById(R.id.et_login); | ||
| 85 | + mLlAuthLogin = view.findViewById(R.id.ll_auth_login); | ||
| 86 | + mLlAuthLogin.setOnClickListener(this); | ||
| 87 | + mLlAuthLogout = view.findViewById(R.id.ll_auth_logout); | ||
| 88 | + mLlAuthLogout.setOnClickListener(this); | ||
| 89 | + | ||
| 90 | + if (!WarplyDBHelper.getInstance(getActivity()).isTableNotEmpty("auth")) { | ||
| 91 | + mLlAuthLogout.setVisibility(View.GONE); | ||
| 92 | + mLlAuthLogin.setVisibility(View.VISIBLE); | ||
| 93 | + mEtGuid.setVisibility(View.VISIBLE); | ||
| 94 | + } else { | ||
| 95 | + mEtGuid.setVisibility(View.GONE); | ||
| 96 | + mLlAuthLogin.setVisibility(View.GONE); | ||
| 97 | + mLlAuthLogout.setVisibility(View.VISIBLE); | ||
| 98 | + } | ||
| 97 | } | 99 | } |
| 98 | 100 | ||
| 99 | @Override | 101 | @Override |
| ... | @@ -111,12 +113,6 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Swip | ... | @@ -111,12 +113,6 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Swip |
| 111 | 113 | ||
| 112 | @Override | 114 | @Override |
| 113 | public void onClick(View view) { | 115 | public void onClick(View view) { |
| 114 | - if (view.getId() == R.id.cl_coupon) { | ||
| 115 | - Intent intent = new Intent(getContext(), ActiveCouponsActivity.class); | ||
| 116 | - intent.putExtra("couponlist", WarplyManagerHelper.getCouponList()); | ||
| 117 | - startActivity(intent); | ||
| 118 | - return; | ||
| 119 | - } | ||
| 120 | if (view.getId() == R.id.rl_driving) { | 116 | if (view.getId() == R.id.rl_driving) { |
| 121 | Intent intent = new Intent(getContext(), TelematicsActivity.class); | 117 | Intent intent = new Intent(getContext(), TelematicsActivity.class); |
| 122 | startActivity(intent); | 118 | startActivity(intent); |
| ... | @@ -127,7 +123,15 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Swip | ... | @@ -127,7 +123,15 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Swip |
| 127 | startActivity(intent); | 123 | startActivity(intent); |
| 128 | return; | 124 | return; |
| 129 | } | 125 | } |
| 130 | - if (view.getId() == R.id.iv_settings) { | 126 | + if (view.getId() == R.id.ll_auth_login) { |
| 127 | + //6012049321, 6012049322, 6012049323, 7000000831 history, 7000000826, 7000000831 shared coupons | ||
| 128 | + //prod 6006552990, prod 6005892749, live 3000184910,prod 7000070282, live 3000136179 | ||
| 129 | + mPbLoading.setVisibility(View.VISIBLE); | ||
| 130 | + WarplyManager.getCosmoteUser(mEtGuid.getText().toString(), mLoginReceiver); | ||
| 131 | + return; | ||
| 132 | + } | ||
| 133 | + if (view.getId() == R.id.ll_auth_logout) { | ||
| 134 | + mPbLoading.setVisibility(View.VISIBLE); | ||
| 131 | WarplyManager.logout(mLogoutReceiver); | 135 | WarplyManager.logout(mLogoutReceiver); |
| 132 | } | 136 | } |
| 133 | } | 137 | } |
| ... | @@ -177,12 +181,38 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Swip | ... | @@ -177,12 +181,38 @@ public class HomeFragment extends Fragment implements View.OnClickListener, Swip |
| 177 | private final CallbackReceiver<JSONObject> mLogoutReceiver = new CallbackReceiver<JSONObject>() { | 181 | private final CallbackReceiver<JSONObject> mLogoutReceiver = new CallbackReceiver<JSONObject>() { |
| 178 | @Override | 182 | @Override |
| 179 | public void onSuccess(JSONObject result) { | 183 | public void onSuccess(JSONObject result) { |
| 184 | + mPbLoading.setVisibility(View.GONE); | ||
| 185 | + mLlAuthLogout.setVisibility(View.GONE); | ||
| 186 | + mLlAuthLogin.setVisibility(View.VISIBLE); | ||
| 187 | + mEtGuid.setVisibility(View.VISIBLE); | ||
| 180 | Toast.makeText(getActivity(), "LOGOUT SUCCESS", Toast.LENGTH_SHORT).show(); | 188 | Toast.makeText(getActivity(), "LOGOUT SUCCESS", Toast.LENGTH_SHORT).show(); |
| 181 | } | 189 | } |
| 182 | 190 | ||
| 183 | @Override | 191 | @Override |
| 184 | public void onFailure(int errorCode) { | 192 | public void onFailure(int errorCode) { |
| 193 | + mPbLoading.setVisibility(View.GONE); | ||
| 185 | Toast.makeText(getActivity(), "LOGOUT ERROR", Toast.LENGTH_SHORT).show(); | 194 | Toast.makeText(getActivity(), "LOGOUT ERROR", Toast.LENGTH_SHORT).show(); |
| 186 | } | 195 | } |
| 187 | }; | 196 | }; |
| 197 | + | ||
| 198 | + private final CallbackReceiver<JSONObject> mLoginReceiver = new CallbackReceiver<JSONObject>() { | ||
| 199 | + @Override | ||
| 200 | + public void onSuccess(JSONObject result) { | ||
| 201 | + mPbLoading.setVisibility(View.GONE); | ||
| 202 | + mLlAuthLogin.setVisibility(View.GONE); | ||
| 203 | + mEtGuid.setVisibility(View.GONE); | ||
| 204 | + mLlAuthLogout.setVisibility(View.VISIBLE); | ||
| 205 | + if (result != null && result.optInt("status") == 1) { | ||
| 206 | + WarplyManager.getUserCouponsWithCouponsets(mUserCouponsReceiver); | ||
| 207 | + WarplyManager.getCampaigns(mCampaignsCallback); | ||
| 208 | + WarplyManager.getUnifiedCouponsDeals(mUnifiedCallback); | ||
| 209 | + } | ||
| 210 | + } | ||
| 211 | + | ||
| 212 | + @Override | ||
| 213 | + public void onFailure(int errorCode) { | ||
| 214 | + mPbLoading.setVisibility(View.GONE); | ||
| 215 | + Toast.makeText(getActivity(), "LOGIN ERROR", Toast.LENGTH_SHORT).show(); | ||
| 216 | + } | ||
| 217 | + }; | ||
| 188 | } | 218 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -25,7 +25,6 @@ | ... | @@ -25,7 +25,6 @@ |
| 25 | 25 | ||
| 26 | package ly.warp.sdk.io.callbacks; | 26 | package ly.warp.sdk.io.callbacks; |
| 27 | 27 | ||
| 28 | -import org.json.JSONException; | ||
| 29 | import org.json.JSONObject; | 28 | import org.json.JSONObject; |
| 30 | 29 | ||
| 31 | import ly.warp.sdk.Warply; | 30 | import ly.warp.sdk.Warply; |
| ... | @@ -42,6 +41,8 @@ import ly.warp.sdk.utils.WarpUtils; | ... | @@ -42,6 +41,8 @@ import ly.warp.sdk.utils.WarpUtils; |
| 42 | 41 | ||
| 43 | import static ly.warp.sdk.Warply.getWarplyContext; | 42 | import static ly.warp.sdk.Warply.getWarplyContext; |
| 44 | 43 | ||
| 44 | +import android.text.TextUtils; | ||
| 45 | + | ||
| 45 | public class VolleyTransformer implements Listener<JSONObject>, ErrorListener { | 46 | public class VolleyTransformer implements Listener<JSONObject>, ErrorListener { |
| 46 | 47 | ||
| 47 | public VolleyTransformer(CallbackReceiver<JSONObject> listener) { | 48 | public VolleyTransformer(CallbackReceiver<JSONObject> listener) { |
| ... | @@ -81,30 +82,42 @@ public class VolleyTransformer implements Listener<JSONObject>, ErrorListener { | ... | @@ -81,30 +82,42 @@ public class VolleyTransformer implements Listener<JSONObject>, ErrorListener { |
| 81 | @Override | 82 | @Override |
| 82 | public void onResponse(JSONObject response) { | 83 | public void onResponse(JSONObject response) { |
| 83 | if (response != null) { | 84 | if (response != null) { |
| 84 | - if (response.optJSONObject("context") != null) { | 85 | + JSONObject contextObj = response.optJSONObject("context"); |
| 85 | - if (response.optJSONObject("context").optJSONObject("device_status") != null) { | 86 | + if (contextObj != null) { |
| 86 | - WarpUtils.setIsWarped(getWarplyContext(), response.optJSONObject("context").optJSONObject("device_status").optBoolean("warped")); | 87 | + JSONObject deviceStatusObj = contextObj.optJSONObject("device_status"); |
| 87 | -// WarpUtils.setDeviceToken(getWarplyContext(), response.optJSONObject("context").optJSONObject("device_status").optString("device_token")); | 88 | + |
| 88 | -// WarpUtils.setHasApplicationInfo(getWarplyContext(), response.optJSONObject("context").optJSONObject("device_status").optBoolean("application_info_saved")); | 89 | + if (deviceStatusObj != null) { |
| 89 | - WarpUtils.setDeviceId(getWarplyContext(), response.optJSONObject("context").optJSONObject("device_status").optString("device_id")); | 90 | + WarpUtils.setIsWarped(getWarplyContext(), deviceStatusObj.optBoolean("warped")); |
| 90 | - WarpUtils.setIsDeviceIdSaved(getWarplyContext(), response.optJSONObject("context").optJSONObject("device_status").optBoolean("device_id_saved")); | 91 | + WarpUtils.setDeviceId(getWarplyContext(), deviceStatusObj.optString("device_id")); |
| 91 | -// WarpUtils.setIsDeviceInfoSaved(getWarplyContext(), response.optJSONObject("context").optJSONObject("device_status").optBoolean("device_info_saved")); | 92 | + WarpUtils.setIsDeviceIdSaved(getWarplyContext(), deviceStatusObj.optBoolean("device_id_saved")); |
| 92 | - if (response.optJSONObject("context").optJSONObject("device_status").optJSONObject("application_info") != null) { | 93 | + |
| 93 | - WarpUtils.setAppDataObject(getWarplyContext(), response.optJSONObject("context").optJSONObject("device_status").optJSONObject("application_info")); | 94 | + JSONObject applicationInfoObj = deviceStatusObj.optJSONObject("application_info"); |
| 94 | - WarpUtils.setSDKVersion(getWarplyContext(), response.optJSONObject("context").optJSONObject("device_status").optJSONObject("application_info").optString("sdk_version")); | 95 | + if (applicationInfoObj != null) { |
| 95 | - WarpUtils.setAppVersion(getWarplyContext(), response.optJSONObject("context").optJSONObject("device_status").optJSONObject("application_info").optString("app_version")); | 96 | + WarpUtils.setAppDataObject(getWarplyContext(), applicationInfoObj); |
| 97 | + WarpUtils.setSDKVersion(getWarplyContext(), applicationInfoObj.optString("sdk_version")); | ||
| 98 | + WarpUtils.setAppVersion(getWarplyContext(), applicationInfoObj.optString("app_version")); | ||
| 96 | } | 99 | } |
| 97 | - if (response.optJSONObject("context").optJSONObject("device_status").optJSONObject("device_info") != null) { | 100 | + |
| 98 | - WarpUtils.setDeviceInfoObject(getWarplyContext(), response.optJSONObject("context").optJSONObject("device_status").optJSONObject("device_info")); | 101 | + JSONObject deviceInfoObj = deviceStatusObj.optJSONObject("device_info"); |
| 99 | - WarpUtils.setOSVersion(getWarplyContext(), response.optJSONObject("context").optJSONObject("device_status").optJSONObject("device_info").optString("os_version")); | 102 | + if (deviceInfoObj != null) { |
| 100 | - WarpUtils.setDeviceBrand(getWarplyContext(), response.optJSONObject("context").optJSONObject("device_status").optJSONObject("device_info").optString("manufacturer")); | 103 | + WarpUtils.setDeviceInfoObject(getWarplyContext(), deviceInfoObj); |
| 101 | - WarpUtils.setCarrierName(getWarplyContext(), response.optJSONObject("context").optJSONObject("device_status").optJSONObject("device_info").optString("carrier_name")); | 104 | + WarpUtils.setOSVersion(getWarplyContext(), deviceInfoObj.optString("os_version")); |
| 105 | + WarpUtils.setDeviceBrand(getWarplyContext(), deviceInfoObj.optString("manufacturer")); | ||
| 106 | + WarpUtils.setCarrierName(getWarplyContext(), deviceInfoObj.optString("carrier_name")); | ||
| 102 | } | 107 | } |
| 103 | } | 108 | } |
| 104 | - if (response.optJSONObject("context").optJSONObject("application_data") != null) { | 109 | + |
| 105 | - WarpUtils.setIsAPPDATAENABLED(getWarplyContext(), response.optJSONObject("context").optJSONObject("application_data").optBoolean("APPLICATION_DATA_ENABLED")); | 110 | + JSONObject applicationDataObj = contextObj.optJSONObject("application_data"); |
| 106 | - WarpUtils.setIsDEVICEINFOENABLED(getWarplyContext(), response.optJSONObject("context").optJSONObject("application_data").optBoolean("DEVICE_INFO_ENABLED")); | 111 | + if (applicationDataObj != null) { |
| 107 | - WarpUtils.setIsLIFECYCLEANALYTICSENABLED(getWarplyContext(), response.optJSONObject("context").optJSONObject("application_data").optBoolean("LIFECYCLE_ANALYTICS_ENABLED", true)); | 112 | + WarpUtils.setIsAPPDATAENABLED(getWarplyContext(), applicationDataObj.optBoolean("APPLICATION_DATA_ENABLED")); |
| 113 | + WarpUtils.setIsDEVICEINFOENABLED(getWarplyContext(), applicationDataObj.optBoolean("DEVICE_INFO_ENABLED")); | ||
| 114 | + WarpUtils.setIsLIFECYCLEANALYTICSENABLED(getWarplyContext(), applicationDataObj.optBoolean("LIFECYCLE_ANALYTICS_ENABLED", true)); | ||
| 115 | + if (applicationDataObj.has("AUTHENTICATION")) { | ||
| 116 | + String jwtAuth = applicationDataObj.optString("AUTHENTICATION", ""); | ||
| 117 | + WarpUtils.setIsJWTEnabled(getWarplyContext(), !TextUtils.isEmpty(jwtAuth) && jwtAuth.equals("JWT")); | ||
| 118 | + } else { | ||
| 119 | + WarpUtils.setIsJWTEnabled(getWarplyContext(), false); | ||
| 120 | + } | ||
| 108 | } | 121 | } |
| 109 | } | 122 | } |
| 110 | } | 123 | } | ... | ... |
| ... | @@ -77,6 +77,17 @@ public interface ApiService { | ... | @@ -77,6 +77,17 @@ public interface ApiService { |
| 77 | @Header(WarpConstants.HEADER_SIGNATURE) String signature); | 77 | @Header(WarpConstants.HEADER_SIGNATURE) String signature); |
| 78 | 78 | ||
| 79 | @Headers("Content-Type: application/json") | 79 | @Headers("Content-Type: application/json") |
| 80 | + @POST("/user/v5/{appUuid}/logout") | ||
| 81 | + Call<ResponseBody> logoutUserJwt(@Path("appUuid") String appUuid, | ||
| 82 | + @Body RequestBody request, | ||
| 83 | + @Header(WarpConstants.HEADER_DATE) String timeStamp, | ||
| 84 | + @Header(WarpConstants.HEADER_LOYALTY_BUNDLE_ID) String bundleId, | ||
| 85 | + @Header(WarpConstants.HEADER_UNIQUE_DEVICE_ID) String deviceId, | ||
| 86 | + @Header(WarpConstants.HEADER_CHANNEL) String channel, | ||
| 87 | + @Header(WarpConstants.HEADER_WEB_ID) String webId, | ||
| 88 | + @Header(WarpConstants.HEADER_SIGNATURE) String signature); | ||
| 89 | + | ||
| 90 | + @Headers("Content-Type: application/json") | ||
| 80 | @POST("/oauth/{appUuid}/context") | 91 | @POST("/oauth/{appUuid}/context") |
| 81 | Call<ResponseBody> getCouponsets(@Path("appUuid") String appUuid, | 92 | Call<ResponseBody> getCouponsets(@Path("appUuid") String appUuid, |
| 82 | @Body RequestBody request, | 93 | @Body RequestBody request, | ... | ... |
| ... | @@ -159,6 +159,8 @@ public class WarpUtils { | ... | @@ -159,6 +159,8 @@ public class WarpUtils { |
| 159 | + "steps"; | 159 | + "steps"; |
| 160 | private static final String PREFERENCES_KEY_STEPS_MANUALLY_STOPPED = PREFERENCES_PREFIX | 160 | private static final String PREFERENCES_KEY_STEPS_MANUALLY_STOPPED = PREFERENCES_PREFIX |
| 161 | + "steps_manually_stopped"; | 161 | + "steps_manually_stopped"; |
| 162 | + private static final String PREFERENCES_KEY_JWT_ENABLED = PREFERENCES_PREFIX | ||
| 163 | + + "jwt_enabled"; | ||
| 162 | 164 | ||
| 163 | private static SharedPreferences _prefs; | 165 | private static SharedPreferences _prefs; |
| 164 | 166 | ||
| ... | @@ -639,6 +641,17 @@ public class WarpUtils { | ... | @@ -639,6 +641,17 @@ public class WarpUtils { |
| 639 | editor.apply(); | 641 | editor.apply(); |
| 640 | } | 642 | } |
| 641 | 643 | ||
| 644 | + public static boolean isJWTEnabled(Context context) { | ||
| 645 | + SharedPreferences prefs = getPreferences(context); | ||
| 646 | + return prefs.getBoolean(PREFERENCES_KEY_JWT_ENABLED, true); | ||
| 647 | + } | ||
| 648 | + | ||
| 649 | + public static void setIsJWTEnabled(Context context, boolean jwtEnabled) { | ||
| 650 | + SharedPreferences.Editor editor = getPreferences(context).edit(); | ||
| 651 | + editor.putBoolean(PREFERENCES_KEY_JWT_ENABLED, jwtEnabled); | ||
| 652 | + editor.apply(); | ||
| 653 | + } | ||
| 654 | + | ||
| 642 | public static JSONObject getAppDataObject(Context context) { | 655 | public static JSONObject getAppDataObject(Context context) { |
| 643 | SharedPreferences prefs = getPreferences(context); | 656 | SharedPreferences prefs = getPreferences(context); |
| 644 | try { | 657 | try { | ... | ... |
| ... | @@ -595,21 +595,39 @@ public class WarplyManager { | ... | @@ -595,21 +595,39 @@ public class WarplyManager { |
| 595 | String webId = WarpUtils.getWebId(Warply.getWarplyContext()); | 595 | String webId = WarpUtils.getWebId(Warply.getWarplyContext()); |
| 596 | 596 | ||
| 597 | Map<String, Object> jsonParams = new ArrayMap<>(); | 597 | Map<String, Object> jsonParams = new ArrayMap<>(); |
| 598 | - jsonParams.put("access_token", WarplyDBHelper.getInstance(Warply.getWarplyContext()).getAuthValue("access_token")); | 598 | + if (WarpUtils.isJWTEnabled(Warply.getWarplyContext())) { |
| 599 | - jsonParams.put("refresh_token", WarplyDBHelper.getInstance(Warply.getWarplyContext()).getAuthValue("refresh_token")); | 599 | + jsonParams.put("access_token", WarplyDBHelper.getInstance(Warply.getWarplyContext()).getAuthValue("access_token")); |
| 600 | + jsonParams.put("refresh_token", WarplyDBHelper.getInstance(Warply.getWarplyContext()).getAuthValue("refresh_token")); | ||
| 601 | + } else { | ||
| 602 | + jsonParams.put("token", WarplyDBHelper.getInstance(Warply.getWarplyContext()).getAuthValue("access_token")); | ||
| 603 | + jsonParams.put("client_id", WarplyDBHelper.getInstance(Warply.getWarplyContext()).getClientValue("client_id")); | ||
| 604 | + jsonParams.put("client_secret", WarplyDBHelper.getInstance(Warply.getWarplyContext()).getClientValue("client_secret")); | ||
| 605 | + } | ||
| 600 | 606 | ||
| 601 | RequestBody loginRequest = RequestBody.create(MediaType.get("application/json; charset=utf-8"), (new JSONObject(jsonParams)).toString()); | 607 | RequestBody loginRequest = RequestBody.create(MediaType.get("application/json; charset=utf-8"), (new JSONObject(jsonParams)).toString()); |
| 602 | 608 | ||
| 603 | - Call<ResponseBody> logoutCall = service.logoutUser( | 609 | + Call<ResponseBody> logoutCall = WarpUtils.isJWTEnabled(Warply.getWarplyContext()) ? |
| 604 | - WarplyProperty.getAppUuid(Warply.getWarplyContext()), | 610 | + service.logoutUserJwt( |
| 605 | - loginRequest, | 611 | + WarplyProperty.getAppUuid(Warply.getWarplyContext()), |
| 606 | - timeStamp, | 612 | + loginRequest, |
| 607 | - "android:" + Warply.getWarplyContext().getPackageName(), | 613 | + timeStamp, |
| 608 | - new WarplyDeviceInfoCollector(Warply.getWarplyContext()).getUniqueDeviceId(), | 614 | + "android:" + Warply.getWarplyContext().getPackageName(), |
| 609 | - "mobile", | 615 | + new WarplyDeviceInfoCollector(Warply.getWarplyContext()).getUniqueDeviceId(), |
| 610 | - webId, | 616 | + "mobile", |
| 611 | - WarpUtils.produceSignature(apiKey + timeStamp) | 617 | + webId, |
| 612 | - ); | 618 | + WarpUtils.produceSignature(apiKey + timeStamp) |
| 619 | + ) | ||
| 620 | + : | ||
| 621 | + service.logoutUser( | ||
| 622 | + WarplyProperty.getAppUuid(Warply.getWarplyContext()), | ||
| 623 | + loginRequest, | ||
| 624 | + timeStamp, | ||
| 625 | + "android:" + Warply.getWarplyContext().getPackageName(), | ||
| 626 | + new WarplyDeviceInfoCollector(Warply.getWarplyContext()).getUniqueDeviceId(), | ||
| 627 | + "mobile", | ||
| 628 | + webId, | ||
| 629 | + WarpUtils.produceSignature(apiKey + timeStamp) | ||
| 630 | + ); | ||
| 613 | 631 | ||
| 614 | logoutCall.enqueue(new Callback<ResponseBody>() { | 632 | logoutCall.enqueue(new Callback<ResponseBody>() { |
| 615 | @Override | 633 | @Override | ... | ... |
| ... | @@ -5,16 +5,17 @@ | ... | @@ -5,16 +5,17 @@ |
| 5 | xmlns:tools="http://schemas.android.com/tools" | 5 | xmlns:tools="http://schemas.android.com/tools" |
| 6 | android:id="@+id/sw_refresh" | 6 | android:id="@+id/sw_refresh" |
| 7 | android:layout_width="match_parent" | 7 | android:layout_width="match_parent" |
| 8 | - android:layout_height="match_parent"> | 8 | + android:layout_height="match_parent" |
| 9 | + android:background="@color/cos_skyblue2"> | ||
| 9 | 10 | ||
| 10 | <ScrollView | 11 | <ScrollView |
| 11 | android:layout_width="match_parent" | 12 | android:layout_width="match_parent" |
| 12 | android:layout_height="match_parent" | 13 | android:layout_height="match_parent" |
| 13 | - android:background="@android:color/white"> | 14 | + android:background="@color/cos_skyblue2"> |
| 14 | 15 | ||
| 15 | <RelativeLayout | 16 | <RelativeLayout |
| 16 | android:layout_width="match_parent" | 17 | android:layout_width="match_parent" |
| 17 | - android:layout_height="match_parent"> | 18 | + android:layout_height="wrap_content"> |
| 18 | 19 | ||
| 19 | <androidx.constraintlayout.widget.ConstraintLayout | 20 | <androidx.constraintlayout.widget.ConstraintLayout |
| 20 | android:id="@+id/rl_header" | 21 | android:id="@+id/rl_header" |
| ... | @@ -22,7 +23,7 @@ | ... | @@ -22,7 +23,7 @@ |
| 22 | android:layout_height="wrap_content" | 23 | android:layout_height="wrap_content" |
| 23 | android:background="@android:color/white" | 24 | android:background="@android:color/white" |
| 24 | android:paddingHorizontal="16dp" | 25 | android:paddingHorizontal="16dp" |
| 25 | - android:paddingTop="16dp"> | 26 | + android:paddingTop="8dp"> |
| 26 | 27 | ||
| 27 | <de.hdodenhof.circleimageview.CircleImageView | 28 | <de.hdodenhof.circleimageview.CircleImageView |
| 28 | android:id="@+id/user_img" | 29 | android:id="@+id/user_img" |
| ... | @@ -100,14 +101,86 @@ | ... | @@ -100,14 +101,86 @@ |
| 100 | android:layout_width="wrap_content" | 101 | android:layout_width="wrap_content" |
| 101 | android:layout_height="wrap_content" | 102 | android:layout_height="wrap_content" |
| 102 | android:layout_below="@+id/rl_header" | 103 | android:layout_below="@+id/rl_header" |
| 103 | - android:background="@drawable/home_bg"> | 104 | + android:background="@color/cos_skyblue2" |
| 105 | + android:paddingBottom="48dp"> | ||
| 106 | + | ||
| 107 | + <RelativeLayout | ||
| 108 | + android:id="@+id/rl_auth_view" | ||
| 109 | + android:layout_width="match_parent" | ||
| 110 | + android:layout_height="70dp" | ||
| 111 | + android:layout_marginHorizontal="8dp" | ||
| 112 | + android:layout_marginTop="24dp" | ||
| 113 | + android:layout_marginBottom="16dp" | ||
| 114 | + android:background="@drawable/shape_cos_white"> | ||
| 115 | + | ||
| 116 | + <EditText | ||
| 117 | + android:id="@+id/et_login" | ||
| 118 | + android:layout_width="180dp" | ||
| 119 | + android:layout_height="wrap_content" | ||
| 120 | + android:layout_alignParentStart="true" | ||
| 121 | + android:layout_centerVertical="true" | ||
| 122 | + android:layout_marginStart="16dp" | ||
| 123 | + android:hint="@string/cos_hint" | ||
| 124 | + android:inputType="number" | ||
| 125 | + android:textColor="@color/blue_dark" | ||
| 126 | + android:textSize="20sp" | ||
| 127 | + android:textStyle="bold" | ||
| 128 | + android:visibility="gone" | ||
| 129 | + tools:visibility="visible"/> | ||
| 130 | + | ||
| 131 | + <LinearLayout | ||
| 132 | + android:id="@+id/ll_auth_login" | ||
| 133 | + android:layout_width="140dp" | ||
| 134 | + android:layout_height="45dp" | ||
| 135 | + android:layout_alignParentEnd="true" | ||
| 136 | + android:layout_centerVertical="true" | ||
| 137 | + android:layout_marginEnd="16dp" | ||
| 138 | + android:background="@drawable/selector_button_green" | ||
| 139 | + android:gravity="center" | ||
| 140 | + android:orientation="horizontal" | ||
| 141 | + android:visibility="gone"> | ||
| 142 | + | ||
| 143 | + <TextView | ||
| 144 | + android:id="@+id/button_login" | ||
| 145 | + android:layout_width="wrap_content" | ||
| 146 | + android:layout_height="wrap_content" | ||
| 147 | + android:gravity="center" | ||
| 148 | + android:includeFontPadding="false" | ||
| 149 | + android:text="@string/cos_login_text" | ||
| 150 | + android:textColor="@color/white" | ||
| 151 | + android:textSize="16sp" /> | ||
| 152 | + </LinearLayout> | ||
| 153 | + | ||
| 154 | + <LinearLayout | ||
| 155 | + android:id="@+id/ll_auth_logout" | ||
| 156 | + android:layout_width="140dp" | ||
| 157 | + android:layout_height="45dp" | ||
| 158 | + android:layout_alignParentEnd="true" | ||
| 159 | + android:layout_centerVertical="true" | ||
| 160 | + android:layout_marginEnd="16dp" | ||
| 161 | + android:background="@drawable/selector_button_green" | ||
| 162 | + android:gravity="center" | ||
| 163 | + android:orientation="horizontal" | ||
| 164 | + android:visibility="gone"> | ||
| 165 | + | ||
| 166 | + <TextView | ||
| 167 | + android:id="@+id/button_logout" | ||
| 168 | + android:layout_width="wrap_content" | ||
| 169 | + android:layout_height="wrap_content" | ||
| 170 | + android:gravity="center" | ||
| 171 | + android:includeFontPadding="false" | ||
| 172 | + android:text="@string/cos_logout_text" | ||
| 173 | + android:textColor="@color/white" | ||
| 174 | + android:textSize="16sp" /> | ||
| 175 | + </LinearLayout> | ||
| 176 | + </RelativeLayout> | ||
| 104 | 177 | ||
| 105 | <RelativeLayout | 178 | <RelativeLayout |
| 106 | android:id="@+id/rl_driving" | 179 | android:id="@+id/rl_driving" |
| 107 | android:layout_width="match_parent" | 180 | android:layout_width="match_parent" |
| 108 | android:layout_height="70dp" | 181 | android:layout_height="70dp" |
| 182 | + android:layout_below="@+id/rl_auth_view" | ||
| 109 | android:layout_marginHorizontal="8dp" | 183 | android:layout_marginHorizontal="8dp" |
| 110 | - android:layout_marginTop="50dp" | ||
| 111 | android:layout_marginBottom="16dp" | 184 | android:layout_marginBottom="16dp" |
| 112 | android:background="@drawable/shape_cos_white"> | 185 | android:background="@drawable/shape_cos_white"> |
| 113 | 186 | ||
| ... | @@ -138,8 +211,8 @@ | ... | @@ -138,8 +211,8 @@ |
| 138 | android:layout_below="@+id/rl_driving" | 211 | android:layout_below="@+id/rl_driving" |
| 139 | android:layout_marginHorizontal="8dp" | 212 | android:layout_marginHorizontal="8dp" |
| 140 | android:layout_marginBottom="16dp" | 213 | android:layout_marginBottom="16dp" |
| 141 | - android:visibility="gone" | 214 | + android:background="@drawable/shape_cos_white" |
| 142 | - android:background="@drawable/shape_cos_white"> | 215 | + android:visibility="visible"> |
| 143 | 216 | ||
| 144 | <TextView | 217 | <TextView |
| 145 | android:layout_width="wrap_content" | 218 | android:layout_width="wrap_content" |
| ... | @@ -160,171 +233,32 @@ | ... | @@ -160,171 +233,32 @@ |
| 160 | android:src="@drawable/cosmote_one" /> | 233 | android:src="@drawable/cosmote_one" /> |
| 161 | </RelativeLayout> | 234 | </RelativeLayout> |
| 162 | 235 | ||
| 163 | - <LinearLayout | ||
| 164 | - android:id="@+id/rl_home_coupons" | ||
| 165 | - android:layout_width="match_parent" | ||
| 166 | - android:layout_height="wrap_content" | ||
| 167 | - android:layout_below="@+id/rl_driving_history" | ||
| 168 | - android:visibility="gone"> | ||
| 169 | - | ||
| 170 | - <androidx.recyclerview.widget.RecyclerView | ||
| 171 | - android:id="@+id/rv_home_coupons" | ||
| 172 | - android:layout_width="match_parent" | ||
| 173 | - android:layout_height="wrap_content" | ||
| 174 | - android:clipToPadding="false" | ||
| 175 | - android:orientation="horizontal" | ||
| 176 | - android:paddingStart="10dp" | ||
| 177 | - android:paddingEnd="10dp" /> | ||
| 178 | - </LinearLayout> | ||
| 179 | - | ||
| 180 | <include | 236 | <include |
| 181 | android:id="@+id/rl_home_info_widget" | 237 | android:id="@+id/rl_home_info_widget" |
| 182 | layout="@layout/info_widget" | 238 | layout="@layout/info_widget" |
| 183 | android:layout_width="match_parent" | 239 | android:layout_width="match_parent" |
| 184 | android:layout_height="wrap_content" | 240 | android:layout_height="wrap_content" |
| 185 | - android:layout_below="@id/rl_home_coupons" | 241 | + android:layout_below="@id/rl_driving_history" |
| 186 | android:layout_marginHorizontal="8dp" /> | 242 | android:layout_marginHorizontal="8dp" /> |
| 187 | 243 | ||
| 188 | - <androidx.constraintlayout.widget.ConstraintLayout | 244 | + <RelativeLayout |
| 189 | - android:id="@+id/cl_coupon" | 245 | + android:id="@+id/pb_loading" |
| 190 | - android:layout_width="match_parent" | ||
| 191 | - android:layout_height="140dp" | ||
| 192 | - android:layout_below="@+id/rl_home_info_widget" | ||
| 193 | - android:layout_marginTop="24dp" | ||
| 194 | - android:background="@drawable/ic_coupon_background"> | ||
| 195 | - | ||
| 196 | - <LinearLayout | ||
| 197 | - android:layout_width="wrap_content" | ||
| 198 | - android:layout_height="wrap_content" | ||
| 199 | - android:layout_marginStart="40dp" | ||
| 200 | - android:orientation="vertical" | ||
| 201 | - app:layout_constraintBottom_toBottomOf="parent" | ||
| 202 | - app:layout_constraintStart_toStartOf="parent" | ||
| 203 | - app:layout_constraintTop_toTopOf="parent"> | ||
| 204 | - | ||
| 205 | - <TextView | ||
| 206 | - android:id="@+id/tv_active_coupons" | ||
| 207 | - android:layout_width="wrap_content" | ||
| 208 | - android:layout_height="wrap_content" | ||
| 209 | - android:layout_marginBottom="8dp" | ||
| 210 | - android:textColor="#3A5266" | ||
| 211 | - android:textFontWeight="600" | ||
| 212 | - android:textSize="16sp" | ||
| 213 | - tools:text="@string/cos_active_coupons" /> | ||
| 214 | - | ||
| 215 | - <TextView | ||
| 216 | - android:layout_width="wrap_content" | ||
| 217 | - android:layout_height="wrap_content" | ||
| 218 | - android:layout_marginTop="8dp" | ||
| 219 | - android:text="Δες τα όλα ->" | ||
| 220 | - android:textColor="#3A5266" /> | ||
| 221 | - </LinearLayout> | ||
| 222 | - | ||
| 223 | - <ImageView | ||
| 224 | - android:layout_width="90dp" | ||
| 225 | - android:layout_height="90dp" | ||
| 226 | - android:layout_marginEnd="32dp" | ||
| 227 | - android:src="@drawable/ic_gifts_for_you" | ||
| 228 | - app:layout_constraintBottom_toBottomOf="parent" | ||
| 229 | - app:layout_constraintEnd_toEndOf="parent" | ||
| 230 | - app:layout_constraintTop_toTopOf="parent" /> | ||
| 231 | - </androidx.constraintlayout.widget.ConstraintLayout> | ||
| 232 | - | ||
| 233 | - <TextView | ||
| 234 | - android:id="@+id/hsv_title" | ||
| 235 | - android:layout_width="match_parent" | ||
| 236 | - android:layout_height="40dp" | ||
| 237 | - android:layout_below="@+id/cl_coupon" | ||
| 238 | - android:layout_marginTop="24dp" | ||
| 239 | - android:background="@android:color/white" | ||
| 240 | - android:paddingHorizontal="25dp" | ||
| 241 | - android:paddingTop="10dp" | ||
| 242 | - android:text="Βρες γρήγορα" | ||
| 243 | - android:textColor="#3C464F" /> | ||
| 244 | - | ||
| 245 | - <HorizontalScrollView | ||
| 246 | - android:id="@+id/ll_add" | ||
| 247 | android:layout_width="match_parent" | 246 | android:layout_width="match_parent" |
| 248 | - android:layout_height="110dp" | 247 | + android:layout_height="match_parent" |
| 249 | - android:layout_below="@id/hsv_title" | 248 | + android:layout_centerInParent="true" |
| 250 | - android:background="@android:color/white" | 249 | + android:background="@android:color/transparent" |
| 251 | - android:paddingBottom="15dp" | 250 | + android:visibility="gone" |
| 252 | - android:scrollbars="none"> | 251 | + tools:visibility="visible" |
| 253 | - | 252 | + android:translationZ="100dp"> |
| 254 | - <LinearLayout | 253 | + |
| 255 | - android:layout_width="match_parent" | 254 | + <ProgressBar |
| 256 | - android:layout_height="match_parent" | 255 | + android:layout_width="48dp" |
| 257 | - android:divider="@drawable/divider" | 256 | + android:layout_height="48dp" |
| 258 | - android:showDividers="middle"> | 257 | + android:layout_centerInParent="true" |
| 259 | - | 258 | + android:indeterminate="true" |
| 260 | - <LinearLayout | 259 | + android:indeterminateTint="@color/cos_green5" |
| 261 | - android:id="@+id/ll_bill_payment" | 260 | + android:indeterminateTintMode="src_atop" /> |
| 262 | - android:layout_width="150dp" | 261 | + </RelativeLayout> |
| 263 | - android:layout_height="match_parent" | ||
| 264 | - android:gravity="center" | ||
| 265 | - android:orientation="vertical" | ||
| 266 | - android:paddingHorizontal="10dp"> | ||
| 267 | - | ||
| 268 | - <ImageView | ||
| 269 | - android:layout_width="50dp" | ||
| 270 | - android:layout_height="50dp" | ||
| 271 | - android:src="@drawable/doc" /> | ||
| 272 | - | ||
| 273 | - <TextView | ||
| 274 | - android:layout_width="match_parent" | ||
| 275 | - android:layout_height="40dp" | ||
| 276 | - android:gravity="center" | ||
| 277 | - android:scrollHorizontally="true" | ||
| 278 | - android:text="Πληρωμή λογαριασμού" | ||
| 279 | - android:textAlignment="center" | ||
| 280 | - android:textColor="#3C464F" /> | ||
| 281 | - </LinearLayout> | ||
| 282 | - | ||
| 283 | - <LinearLayout | ||
| 284 | - android:layout_width="150dp" | ||
| 285 | - android:layout_height="match_parent" | ||
| 286 | - android:gravity="center" | ||
| 287 | - android:orientation="vertical" | ||
| 288 | - android:paddingHorizontal="10dp"> | ||
| 289 | - | ||
| 290 | - <ImageView | ||
| 291 | - android:layout_width="50dp" | ||
| 292 | - android:layout_height="50dp" | ||
| 293 | - android:src="@drawable/message" /> | ||
| 294 | - | ||
| 295 | - <TextView | ||
| 296 | - android:layout_width="match_parent" | ||
| 297 | - android:layout_height="40dp" | ||
| 298 | - android:gravity="center" | ||
| 299 | - android:scrollHorizontally="true" | ||
| 300 | - android:text="Υποστήριξη" | ||
| 301 | - android:textAlignment="center" | ||
| 302 | - android:textColor="#3C464F" /> | ||
| 303 | - </LinearLayout> | ||
| 304 | - | ||
| 305 | - <LinearLayout | ||
| 306 | - android:layout_width="150dp" | ||
| 307 | - android:layout_height="match_parent" | ||
| 308 | - android:gravity="center" | ||
| 309 | - android:orientation="vertical" | ||
| 310 | - android:paddingHorizontal="10dp"> | ||
| 311 | - | ||
| 312 | - <ImageView | ||
| 313 | - android:layout_width="50dp" | ||
| 314 | - android:layout_height="50dp" | ||
| 315 | - android:src="@drawable/doc" /> | ||
| 316 | - | ||
| 317 | - <TextView | ||
| 318 | - android:layout_width="match_parent" | ||
| 319 | - android:layout_height="40dp" | ||
| 320 | - android:gravity="center" | ||
| 321 | - android:scrollHorizontally="true" | ||
| 322 | - android:text="Πληρωμή λογαριασμού" | ||
| 323 | - android:textAlignment="center" | ||
| 324 | - android:textColor="#3C464F" /> | ||
| 325 | - </LinearLayout> | ||
| 326 | - </LinearLayout> | ||
| 327 | - </HorizontalScrollView> | ||
| 328 | </RelativeLayout> | 262 | </RelativeLayout> |
| 329 | </RelativeLayout> | 263 | </RelativeLayout> |
| 330 | </ScrollView> | 264 | </ScrollView> | ... | ... |
| ... | @@ -213,6 +213,7 @@ | ... | @@ -213,6 +213,7 @@ |
| 213 | <string name="lbl_take_photo_decline">Άκυρο</string> | 213 | <string name="lbl_take_photo_decline">Άκυρο</string> |
| 214 | <string name="lbl_gps_enabled">Θέλετε να ενεργοποιήσετε το GPS;</string> | 214 | <string name="lbl_gps_enabled">Θέλετε να ενεργοποιήσετε το GPS;</string> |
| 215 | <string name="cos_telematics">Safe Driving</string> | 215 | <string name="cos_telematics">Safe Driving</string> |
| 216 | + <string name="cos_hint">GUID</string> | ||
| 216 | <string name="cos_telematics_metrics">Ανάλυση</string> | 217 | <string name="cos_telematics_metrics">Ανάλυση</string> |
| 217 | <string name="cos_dlg_start_trip">Έναρξη</string> | 218 | <string name="cos_dlg_start_trip">Έναρξη</string> |
| 218 | <string name="cos_dlg_stop_trip">Παύση</string> | 219 | <string name="cos_dlg_stop_trip">Παύση</string> |
| ... | @@ -244,6 +245,8 @@ | ... | @@ -244,6 +245,8 @@ |
| 244 | <string name="cos_vouchers_info_title_disabled">Διαθέσιμο υπόλοιπο</string> | 245 | <string name="cos_vouchers_info_title_disabled">Διαθέσιμο υπόλοιπο</string> |
| 245 | <string name="cos_vouchers_info_title_disabled_en">Available balance</string> | 246 | <string name="cos_vouchers_info_title_disabled_en">Available balance</string> |
| 246 | <string name="cos_coupons_header">Κουπόνια</string> | 247 | <string name="cos_coupons_header">Κουπόνια</string> |
| 248 | + <string name="cos_login_text">Σύνδεση</string> | ||
| 249 | + <string name="cos_logout_text">Αποσύνδεση</string> | ||
| 247 | 250 | ||
| 248 | <string-array name="coupons_array"> | 251 | <string-array name="coupons_array"> |
| 249 | <item>Κουπόνια</item> | 252 | <item>Κουπόνια</item> | ... | ... |
-
Please register or login to post a comment