· 9 years ago · Jul 04, 2017, 08:56 AM
1$user_sldtl = $db->getUserSLsummary($arclass, $loanclass, $accintreceivable,
2$date, $year, $month, $br_code, $clientid);
3
4 If($user_sldtl != null) {
5 for($i = 0; $i < count($user_sldtl); $i++){
6 $sl_response["error"] = FALSE;
7 // $sl_response["sl_summ"]["sl_brcode"] = $user_sldtl[$i][0];
8 // $sl_response["sl_summ"]["sl_memid"] = $user_sldtl[$i][3];
9 $sl_response["sl_summ"]["sl_desc"] = $user_sldtl[$i][7];
10 $sl_response["sl_summ"]["tr_date"] = $user_sldtl[$i][10];
11 $sl_response["sl_summ"]["actual_balance"] = $user_sldtl[$i][14];
12 $sl_response["sl_summ"]["available_balance"] = $user_sldtl[$i][14];
13 json_encode($sl_response, true);
14 echo json_encode($sl_response, true);
15 //echo "<br>";
16 }
17
18 }
19 else {
20 // echo "Member's data not found"."<br />";
21 // echo "Var dump: ";
22 // var_dump($user);
23 // echo " ->No record found";
24 $sl_response["error"] = TRUE;
25 $sl_response["error_msg"] = "NO SL Details found!";
26 echo json_encode($sl_response);
27 }
28
29{
30 "error":false,
31 "user":
32 {
33 "br_code":12,
34 "mem_id":13,
35 "username":"test",
36 "email":"test@yahoo.com"
37 ,"created_at":"2016-07-22 09:05:21"
38 }
39}
40
41{
42 "error": false,
43 "sl_summ":
44 [
45 {
46 "sl_desc": "PA : Savings Account",
47 "tr_date": "2015-08-17",
48 "actual_balance": "483.67",
49 "available_balance": "483.67"
50 },
51 {
52 "sl_desc": "PA : Savings - Cash Bond",
53 "tr_date": "2015-08-28",
54 "actual_balance": "10129.43",
55 "available_balance": "10129.43"
56 }
57 ]
58}
59
60public class SQLiteHandler extends SQLiteOpenHelper {
61
62private static final String TAG = SQLiteHandler.class.getSimpleName();
63
64// All Static variables
65// Database Version
66private static final int DATABASE_VERSION = 1;
67
68// Database Name
69private static final String DATABASE_NAME = "coredev_gsacwp";
70
71// Login table name
72private static final String TABLE_MEMBERS = "members";
73private static final String TABLE_MEMBERS_SLDTL = "sldtl";
74
75// Login Table Columns names
76private static final String BR_CODE = "br_code";
77private static final String MEM_ID = "mem_id";
78private static final String MEM_USERNAME = "username";
79private static final String MEM_EMAIL = "email";
80private static final String MEM_CREATED_AT = "created_at";
81
82// Members SL Details
83private static final String SL_DESC = "sl_desc";
84private static final String TR_DATE = "trans_date";
85private static final String ACTUAL_BALANCE = "actual_balance";
86private static final String AVAILABLE_BALANCE = "available_balance";
87
88public SQLiteHandler(Context context) {
89 super(context, DATABASE_NAME, null, DATABASE_VERSION);
90}
91
92// Creating Tables
93@Override
94public void onCreate(SQLiteDatabase db) {
95 String CREATE_LOGIN_TABLE = "CREATE TABLE " + TABLE_MEMBERS + "("
96 + BR_CODE + " INTEGER,"
97 + MEM_ID + " INTEGER PRIMARY KEY,"
98 + MEM_USERNAME + " TEXT,"
99 + MEM_EMAIL + " TEXT UNIQUE,"
100 + MEM_CREATED_AT + " TEXT" + ")";
101 db.execSQL(CREATE_LOGIN_TABLE);
102
103 //Members SLDTL table
104 String CREATE_SLDTL_TABLE = "CREATE TABLE " + TABLE_MEMBERS_SLDTL + "("
105 + SL_DESC + " TEXT,"
106 + TR_DATE + " DATETIME,"
107 + ACTUAL_BALANCE + " REAL,"
108 + AVAILABLE_BALANCE + " REAL" + ")";
109 db.execSQL(CREATE_SLDTL_TABLE);
110
111 Log.d(TAG, "Database table created");
112}
113
114// Upgrading database
115@Override
116public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
117 // Drop older table if existed
118 db.execSQL("DROP TABLE IF EXISTS " + TABLE_MEMBERS);
119 db.execSQL("DROP TABLE IF EXISTS " + TABLE_MEMBERS_SLDTL);
120
121 // Create tables again
122 onCreate(db);
123}
124
125/**
126 * Storing user details in database
127 * */
128public void addUser(String br_code, String mem_id, String username, String email, String created_at) {
129 SQLiteDatabase db = this.getWritableDatabase();
130
131 ContentValues values = new ContentValues();
132 values.put(BR_CODE, br_code); // branch code
133 values.put(MEM_ID, mem_id); // mem id
134 values.put(MEM_USERNAME, username); // username
135 values.put(MEM_EMAIL, email); // Email
136 values.put(MEM_CREATED_AT, created_at); // Created At
137
138 // Inserting Row
139 long id = db.insert(TABLE_MEMBERS, null, values);
140 db.close(); // Closing database connection
141
142 Log.d(TAG, "New user inserted into sqlite: " + id);
143}
144/**
145 * Storing user SL details in database
146 * */
147public void addUserSLDTL(String sl_desc, String tr_date, String actual_balance, String avail_balance){
148 SQLiteDatabase db = this.getWritableDatabase();
149
150 ContentValues values = new ContentValues();
151 values.put(SL_DESC, sl_desc); // sl desc
152 values.put(TR_DATE, tr_date); // trans date
153 values.put(ACTUAL_BALANCE, actual_balance); // actual balance
154 values.put(AVAILABLE_BALANCE, avail_balance); // availabe balance
155
156 // Inserting Row
157 long id = db.insert(TABLE_MEMBERS_SLDTL, null, values);
158 db.close(); // Closing database connection
159
160 Log.d(TAG, "User SL Details inserted into sqlite: " + id);
161}
162/**
163 * Getting user data from database
164 * */
165public HashMap<String, String> getUserDetails() {
166 HashMap<String, String> user = new HashMap<String, String>();
167 String selectQuery = "SELECT * FROM " + TABLE_MEMBERS;
168
169 SQLiteDatabase db = this.getReadableDatabase();
170 Cursor cursor = db.rawQuery(selectQuery, null);
171 // Move to first row
172 cursor.moveToFirst();
173 if (cursor.getCount() > 0) {
174 user.put("br_code", cursor.getString(0));
175 user.put("mem_id", cursor.getString(1));
176 user.put("username", cursor.getString(2));
177 user.put("email", cursor.getString(3));
178 user.put("created_at", cursor.getString(4));
179 }
180 cursor.close();
181 db.close();
182 // return user
183 Log.d(TAG, "Fetching user from Sqlite: " + user.toString());
184
185 return user;
186}
187/**
188 * Getting user SL details data from database
189 * */
190public HashMap<String, String> getUserSLDTL() {
191 HashMap<String, String> sl_summ = new HashMap<String, String>();
192 String selectQuery = "SELECT * FROM " + TABLE_MEMBERS_SLDTL;
193
194 SQLiteDatabase db = this.getReadableDatabase();
195 Cursor cursor = db.rawQuery(selectQuery, null);
196 // Move to first row
197 cursor.moveToFirst();
198 if (cursor.getCount() > 0) {
199 sl_summ.put("sl_desc", cursor.getString(0));
200 sl_summ.put("tr_date", cursor.getString(1));
201 sl_summ.put("actual_balance", cursor.getString(2));
202 sl_summ.put("avail_balance", cursor.getString(3));
203 }
204 cursor.close();
205 db.close();
206
207 // return user
208 Log.d(TAG, "Fetching user from Sqlite: " + sl_summ.toString());
209
210 return sl_summ;
211}
212
213/**
214 * Re create database Delete all tables and create them again
215 * */
216public void deleteUsers() {
217 SQLiteDatabase db = this.getWritableDatabase();
218 // Delete All Rows
219 db.delete(TABLE_MEMBERS, null, null);
220 db.close();
221
222 Log.d(TAG, "All user info are now deleted in sqlite");
223}
224/**
225 * Re create database Delete all tables and create them again
226 * */
227public void deleteUserSLDTL() {
228 SQLiteDatabase db = this.getWritableDatabase();
229 // Delete All Rows
230 db.delete(TABLE_MEMBERS_SLDTL, null, null);
231 db.close();
232
233 Log.d(TAG, "All user's SLDTL info are now deleted in sqlite");
234}
235
236public class LoginActivity extends Activity {
237private static final String TAG = RegisterActivity.class.getSimpleName();
238private Button btnLogin;
239private Button btnLinkToRegister;
240private EditText inputUsername;
241private EditText inputPassword;
242private ProgressDialog pDialog;
243private SessionManager session;
244private SQLiteHandler db;
245
246@Override
247public void onCreate(Bundle savedInstanceState) {
248 super.onCreate(savedInstanceState);
249 setContentView(R.layout.activity_login);
250
251 inputUsername = (EditText) findViewById(R.id.username);
252 inputPassword = (EditText) findViewById(R.id.password);
253 btnLogin = (Button) findViewById(R.id.btnLogin);
254 btnLinkToRegister = (Button) findViewById(R.id.btnLinkToRegisterScreen);
255
256 // Progress dialog
257 pDialog = new ProgressDialog(this);
258 pDialog.setCancelable(false);
259
260 // SQLite database handler
261 db = new SQLiteHandler(getApplicationContext());
262
263 // Session manager
264 session = new SessionManager(getApplicationContext());
265
266 // Check if user is already logged in or not
267 if (session.isLoggedIn()) {
268 // User is already logged in. Take him to main activity
269 Intent intent = new Intent(LoginActivity.this, MainActivity.class);
270 startActivity(intent);
271 finish();
272 }
273
274 // Login button Click Event
275 btnLogin.setOnClickListener(new View.OnClickListener() {
276
277 public void onClick(View view) {
278 String username = inputUsername.getText().toString().trim();
279 String password = inputPassword.getText().toString().trim();
280
281 // Check for empty data in the form
282 if (!username.isEmpty() && !password.isEmpty()) {
283 // login user
284 checkLogin(username, password);
285 } else {
286 // Prompt user to enter credentials
287 Toast.makeText(getApplicationContext(),
288 "Please enter the credentials!", Toast.LENGTH_LONG)
289 .show();
290 }
291 }
292 });
293
294 // Link to Register Screen
295 btnLinkToRegister.setOnClickListener(new View.OnClickListener() {
296
297 public void onClick(View view) {
298 Uri uri = Uri.parse("http://gsac.ph/iaccswebportal/register.php");
299 Intent intent = new Intent(Intent.ACTION_VIEW, uri);
300 startActivity(intent);
301 }
302 });
303
304}
305/**
306 * function to verify login details in mysql db
307 * */
308private void checkLogin(final String username, final String password) {
309 // Tag used to cancel the request
310 String tag_string_req = "req_login";
311
312 pDialog.setMessage("Logging in ...");
313 showDialog();
314
315 StringRequest strReq = new StringRequest(Method.POST,
316 AppConfig.URL_LOGIN, new Response.Listener<String>() {
317
318 @Override
319 public void onResponse(String response) {
320 Log.d(TAG, "Login Response: " + response.toString());
321 hideDialog();
322
323 try {
324 JSONObject jObj = new JSONObject(response);
325 boolean error = jObj.getBoolean("error");
326
327 // Check for error node in json
328 if (!error) {
329 // user successfully logged in
330
331 // Create login session
332 session.setLogin(true);
333
334 // Now store the user in SQLite
335 //String uid = jObj.getString("uid");
336
337 JSONObject user = jObj.getJSONObject("user");
338 String br_code = user.getString("br_code");
339 String mem_id = user.getString("mem_id");
340 String username = user.getString("username");
341 String email = user.getString("email");
342 String created_at = user.getString("created_at");
343
344 // Inserting row in users table
345 db.addUser(br_code, mem_id, username, email, created_at);
346 try {
347 JSONObject sl_jObj = new JSONObject("sl_summ");
348 Boolean sl_error = sl_jObj.getBoolean("error");
349 Log.e("Test", "Error : " + sl_error);
350 if (!sl_error) {
351 JSONArray sl_summ = sl_jObj.optJSONArray("sl_summ");
352 for (int i = 0; i < sl_summ.length(); i++) {
353 JSONObject rootObj = sl_summ.getJSONObject(i);
354 String sl_desc = rootObj.getString("sl_desc");
355 String tr_date = rootObj.getString("tr_date");
356 String actual_balance = rootObj.getString("actual_balance");
357 String avail_balance = rootObj.getString("avail_balance");
358 // then do whatever you want with this data
359 // Inserting row in users table
360 db.addUserSLDTL(sl_desc, tr_date, actual_balance, avail_balance);
361 }
362 }
363 }catch (JSONException e) {
364 // JSON error
365 e.printStackTrace();
366 Toast.makeText(getApplicationContext(), "Json error: " + e.getMessage(), Toast.LENGTH_LONG).show();
367 }
368
369 // Launch main activity
370 Intent intent = new Intent(LoginActivity.this,
371 MainActivity.class);
372 startActivity(intent);
373 finish();
374 } else {
375 // Error in login. Get the error message
376 String errorMsg = jObj.getString("error_msg");
377 Toast.makeText(getApplicationContext(),
378 errorMsg, Toast.LENGTH_LONG).show();
379 }
380 } catch (JSONException e) {
381 // JSON error
382 e.printStackTrace();
383 Toast.makeText(getApplicationContext(), "Json error: " + e.getMessage(), Toast.LENGTH_LONG).show();
384 }
385 }
386 }, new Response.ErrorListener() {
387
388 @Override
389 public void onErrorResponse(VolleyError error) {
390 Log.e(TAG, "Login Error: " + error.getMessage());
391 Toast.makeText(getApplicationContext(),
392 error.getMessage(), Toast.LENGTH_LONG).show();
393 hideDialog();
394 }
395 }) {
396
397 @Override
398 protected Map<String, String> getParams() {
399 // Posting parameters to login url
400 Map<String, String> params = new HashMap<String, String>();
401 params.put("username", username);
402 params.put("password", password);
403
404 return params;
405 }
406 };
407 // Adding request to request queue
408 AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
409}
410
411private void showDialog() {
412 if (!pDialog.isShowing())
413 pDialog.show();
414}
415
416private void hideDialog() {
417 if (pDialog.isShowing())
418 pDialog.dismiss();
419}
420
421Login Response: {"error":false,"user":{"br_code":12,"mem_id":13,"username":"test","email":"test@yahoo.com","created_at":"2016-07-22 09:05:21"}}<br /><br />{"error":false,"sl_summ":{"sl_desc":"PA : Savings Account","tr_date":"2015-08-17","actual_balance":"483.67","available_balance":"483.67"}}{"error":false,"sl_summ":{"sl_desc":"PA : Savings - Cash Bond","tr_date":"2015-08-28","actual_balance":"10129.43","available_balance":"10129.43"}}
422 06-22 16:07:30.456 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/ViewRootImpl@48e3e97[LoginActivity]: dispatchDetachedFromWindow
423 06-22 16:07:30.470 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/InputTransport: Input channel destroyed: fd=85
424 06-22 16:07:30.478 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/SessionManager: User login session modified!
425 06-22 16:07:30.498 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/SQLiteHandler: New user inserted into sqlite: 13
426 06-22 16:07:30.499 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/System.err: org.json.JSONException: Value sl_summ of type java.lang.String cannot be converted to JSONObject
427 06-22 16:07:30.500 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/System.err: at org.json.JSON.typeMismatch(JSON.java:111)
428 06-22 16:07:30.500 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/System.err: at org.json.JSONObject.<init>(JSONObject.java:160)
429 06-22 16:07:30.501 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/System.err: at org.json.JSONObject.<init>(JSONObject.java:173)
430 06-22 16:07:30.501 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/System.err: at ph.coredev.johnjessbayutas.gsacmobileportal.activity.LoginActivity$3.onResponse(LoginActivity.java:147)
431 06-22 16:07:30.501 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/System.err: at ph.coredev.johnjessbayutas.gsacmobileportal.activity.LoginActivity$3.onResponse(LoginActivity.java:116)
432 06-22 16:07:30.501 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/System.err: at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60)
433 06-22 16:07:30.501 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/System.err: at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30)
434 06-22 16:07:30.501 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/System.err: at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
435 06-22 16:07:30.501 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/System.err: at android.os.Handler.handleCallback(Handler.java:751)
436 06-22 16:07:30.501 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
437 06-22 16:07:30.501 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/System.err: at android.os.Looper.loop(Looper.java:154)
438 06-22 16:07:30.502 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6692)
439 06-22 16:07:30.502 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/System.err: at java.lang.reflect.Method.invoke(Native Method)
440 06-22 16:07:30.502 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
441 06-22 16:07:30.502 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
442 06-22 16:07:30.560 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/ViewRootImpl@7c78859[LoginActivity]: MSG_WINDOW_FOCUS_CHANGED 1
443 06-22 16:07:30.564 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal E/ViewRootImpl: sendUserActionEvent() mView == null
444 06-22 16:07:30.579 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/InputTransport: Input channel constructed: fd=81
445 06-22 16:07:30.579 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/ViewRootImpl@6834e69[Toast]: setView = android.widget.LinearLayout{60290ee V.E...... ......I. 0,0-0,0} touchMode=true
446 06-22 16:07:30.604 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/ViewRootImpl@7c78859[LoginActivity]: MSG_WINDOW_FOCUS_CHANGED 0
447 06-22 16:07:30.623 24346-24418/ph.coredev.johnjessbayutas.gsacmobileportal D/mali_winsys: EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000, [907x245]-format:1
448 06-22 16:07:30.692 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/SQLiteHandler: Fetching user from Sqlite: {email=gsac_tabaco@yahoo.com, created_at=2016-07-22 09:05:21, br_code=12, mem_id=13, username=novalyn}
449 06-22 16:07:30.696 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/SQLiteHandler: Fetching user from Sqlite: {}
450 06-22 16:07:30.708 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/InputTransport: Input channel constructed: fd=85
451 06-22 16:07:30.708 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/ViewRootImpl@bc7f138[MainActivity]: setView = DecorView@8f0f511[MainActivity] touchMode=true
452 06-22 16:07:30.709 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/ViewRootImpl@6834e69[Toast]: MSG_RESIZED_REPORT: ci=Rect(0, 0 - 0, 0) vi=Rect(0, 0 - 0, 0) or=1
453 06-22 16:07:30.746 24346-24418/ph.coredev.johnjessbayutas.gsacmobileportal D/mali_winsys: EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000, [1080x1920]-format:1
454 06-22 16:07:30.811 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/ViewRootImpl@bc7f138[MainActivity]: MSG_RESIZED_REPORT: ci=Rect(0, 72 - 0, 0) vi=Rect(0, 72 - 0, 0) or=1
455 06-22 16:07:30.811 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/ViewRootImpl@bc7f138[MainActivity]: MSG_WINDOW_FOCUS_CHANGED 1
456 06-22 16:07:30.813 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal V/InputMethodManager: Starting input: tba=android.view.inputmethod.EditorInfo@38d1e4e nm : ph.coredev.johnjessbayutas.gsacmobileportal ic=null
457 06-22 16:07:30.814 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal I/InputMethodManager: [IMM] startInputInner - mService.startInputOrWindowGainedFocus
458 06-22 16:07:30.825 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/InputTransport: Input channel constructed: fd=98
459 06-22 16:07:30.825 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/InputTransport: Input channel destroyed: fd=79
460 06-22 16:07:30.839 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal W/IInputConnectionWrapper: finishComposingText on inactive InputConnection
461 06-22 16:07:31.258 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/ViewRootImpl@7c78859[LoginActivity]: dispatchDetachedFromWindow
462 06-22 16:07:31.272 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/InputTransport: Input channel destroyed: fd=84
463 06-22 16:07:34.027 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/ViewRootImpl@6834e69[Toast]: dispatchDetachedFromWindow
464 06-22 16:07:34.037 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/InputTransport: Input channel destroyed: fd=81
465 06-22 16:08:04.047 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal V/InputMethodManager: Starting input: tba=android.view.inputmethod.EditorInfo@a5db6f nm : ph.coredev.johnjessbayutas.gsacmobileportal ic=null
466 06-22 16:08:04.048 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal I/InputMethodManager: [IMM] startInputInner - mService.startInputOrWindowGainedFocus
467 06-22 16:08:04.055 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/InputTransport: Input channel constructed: fd=80
468 06-22 16:08:04.056 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/InputTransport: Input channel destroyed: fd=98
469 06-22 16:08:09.686 24346-24346/ph.coredev.johnjessbayutas.gsacmobileportal D/ViewRootImpl@bc7f138[MainActivity]: MSG_WINDOW_FOCUS_CHANGED 0
470
471Login Response: {"error":false,"user":{"br_code":12,"mem_id":13,"username":"test","email":"test@yahoo.com","created_at":"2016-07-22 09:05:21"}}<br /><br />{"error":false,"sl_summ":{"sl_desc":"PA : Savings Account","tr_date":"2015-08-17","actual_balance":"483.67","available_balance":"483.67"}}{"error":false,"sl_summ":{"sl_desc":"PA : Savings - Cash Bond","tr_date":"2015-08-28","actual_balance":"10129.43","available_balance":"10129.43"}}
472
473{
474 "error":false,
475 "sl_summ":
476 {
477 "sl_desc":"PA : Savings Account",
478 "tr_date":"2015-08-17",
479 "actual_balance":"483.67",
480 "available_balance":"483.67"
481 }
482}
483
484{
485 "error":false,
486 "sl_summ":
487 {
488 "sl_desc":"PA : Savings - Cash Bond",
489 "tr_date":"2015-08-28",
490 "actual_balance":"10129.43",
491 "available_balance":"10129.43"
492 }
493}
494
495{
496 "error":false,
497 "sl_summ":
498 [{
499 "sl_desc":"PA : Savings Account",
500 "tr_date":"2015-08-17",
501 "actual_balance":"483.67",
502 "available_balance":"483.67"
503 },
504 {
505 "sl_desc":"PA : Savings - Cash Bond",
506 "tr_date":"2015-08-28",
507 "actual_balance":"10129.43",
508 "available_balance":"10129.43"
509 }]
510}
511
512Login Response: {"error":false,"user":{"br_code":12,"mem_id":13,"username":"test","email":"test@yahoo.com","created_at":"2016-07-22 09:05:21"}}<br /><br />{"error":false,"sl_summ":{"sl_desc":"PA : Savings Account","tr_date":"2015-08-17","actual_balance":"483.67","available_balance":"483.67"}}{"error":false,"sl_summ":{"sl_desc":"PA : Savings - Cash Bond","tr_date":"2015-08-28","actual_balance":"10129.43","available_balance":"10129.43"}}
513
514JsonObject json = new JsonObject(response);
515 if(json.has("sl_summ"){
516
517 JSONObject sl_jObj = new JSONObject(json.getString("sl_summ"));
518}