Commit 5520a4b27df178a212e405aeaad6b3bbda41cd3d
1 parent
13594f58ae
Exists in
master
and in
1 other branch
update
Showing 17 changed files with 401 additions and 88 deletions Side-by-side Diff
- .idea/misc.xml
- .idea/modules.xml
- app/build.gradle
- app/src/main/java/com/dinhcv/lifelogpedometer/activity/HistoryContentFragment.java
- app/src/main/java/com/dinhcv/lifelogpedometer/activity/HistoryDetailFragment.java
- app/src/main/java/com/dinhcv/lifelogpedometer/activity/InputConfirmCodeActivity.java
- app/src/main/java/com/dinhcv/lifelogpedometer/activity/LoginActivity.java
- app/src/main/java/com/dinhcv/lifelogpedometer/activity/RegisterActivity.java
- app/src/main/java/com/dinhcv/lifelogpedometer/activity/TopDateFragment.java
- app/src/main/java/com/dinhcv/lifelogpedometer/activity/TopTodayFragment.java
- app/src/main/java/com/dinhcv/lifelogpedometer/activity/WelcomeActivity.java
- app/src/main/java/com/dinhcv/lifelogpedometer/model/structure/home/NoticeInfo.java
- app/src/main/java/com/dinhcv/lifelogpedometer/portal/ApiServices.java
- app/src/main/java/com/dinhcv/lifelogpedometer/portal/LLAPIManager.java
- app/src/main/res/layout/fragment_history_content.xml
- build.gradle
- gradle/wrapper/gradle-wrapper.properties
.idea/misc.xml
| 1 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | 2 | <project version="4"> |
| 3 | - <component name="EntryPointsManager"> | |
| 4 | - <entry_points version="2.0" /> | |
| 5 | - </component> | |
| 6 | 3 | <component name="NullableNotNullManager"> |
| 7 | 4 | <option name="myDefaultNullable" value="android.support.annotation.Nullable" /> |
| 8 | 5 | <option name="myDefaultNotNull" value="android.support.annotation.NonNull" /> |
| ... | ... | @@ -27,17 +24,7 @@ |
| 27 | 24 | </value> |
| 28 | 25 | </option> |
| 29 | 26 | </component> |
| 30 | - <component name="ProjectLevelVcsManager" settingsEditedManually="false"> | |
| 31 | - <OptionsSetting value="true" id="Add" /> | |
| 32 | - <OptionsSetting value="true" id="Remove" /> | |
| 33 | - <OptionsSetting value="true" id="Checkout" /> | |
| 34 | - <OptionsSetting value="true" id="Update" /> | |
| 35 | - <OptionsSetting value="true" id="Status" /> | |
| 36 | - <OptionsSetting value="true" id="Edit" /> | |
| 37 | - <ConfirmationsSetting value="0" id="Add" /> | |
| 38 | - <ConfirmationsSetting value="0" id="Remove" /> | |
| 39 | - </component> | |
| 40 | - <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> | |
| 27 | + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> | |
| 41 | 28 | <output url="file://$PROJECT_DIR$/build/classes" /> |
| 42 | 29 | </component> |
| 43 | 30 | <component name="ProjectType"> |
.idea/modules.xml
| ... | ... | @@ -4,7 +4,7 @@ |
| 4 | 4 | <modules> |
| 5 | 5 | <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> |
| 6 | 6 | <module fileurl="file://$PROJECT_DIR$/lifelog_android.iml" filepath="$PROJECT_DIR$/lifelog_android.iml" /> |
| 7 | - <module fileurl="file://$PROJECT_DIR$/lifelogpedometer.iml" filepath="$PROJECT_DIR$/lifelogpedometer.iml" /> | |
| 7 | + <module fileurl="file://D:\Project\Git\lifelog_android\lifelogpedometer.iml" filepath="D:\Project\Git\lifelog_android\lifelogpedometer.iml" /> | |
| 8 | 8 | </modules> |
| 9 | 9 | </component> |
| 10 | 10 | </project> |
app/build.gradle
| ... | ... | @@ -2,7 +2,7 @@ |
| 2 | 2 | |
| 3 | 3 | android { |
| 4 | 4 | compileSdkVersion 25 |
| 5 | - buildToolsVersion "25.0.3" | |
| 5 | + buildToolsVersion '26.0.2' | |
| 6 | 6 | defaultConfig { |
| 7 | 7 | applicationId "com.dinhcv.lifelogpedometer" |
| 8 | 8 | minSdkVersion 19 |
| ... | ... | @@ -13,6 +13,9 @@ |
| 13 | 13 | // Enabling multidex support. |
| 14 | 14 | multiDexEnabled true |
| 15 | 15 | } |
| 16 | + | |
| 17 | + flavorDimensions "default" | |
| 18 | + | |
| 16 | 19 | buildTypes { |
| 17 | 20 | release { |
| 18 | 21 | minifyEnabled false |
app/src/main/java/com/dinhcv/lifelogpedometer/activity/HistoryContentFragment.java
| ... | ... | @@ -17,6 +17,7 @@ |
| 17 | 17 | import com.dinhcv.lifelogpedometer.R; |
| 18 | 18 | import com.dinhcv.lifelogpedometer.interfaces.LLAPIManagerListener; |
| 19 | 19 | import com.dinhcv.lifelogpedometer.model.structure.history.HistoryInfo; |
| 20 | +import com.dinhcv.lifelogpedometer.portal.ApiServices; | |
| 20 | 21 | import com.dinhcv.lifelogpedometer.portal.LLAPIManager; |
| 21 | 22 | import com.dinhcv.lifelogpedometer.utils.Const; |
| 22 | 23 | import com.dinhcv.lifelogpedometer.utils.DayAxisValueFormatter; |
| ... | ... | @@ -228,7 +229,7 @@ |
| 228 | 229 | Date fromDate = Utils.getFromDate(mAnaDate, dataType); |
| 229 | 230 | |
| 230 | 231 | showDialog(mContext); |
| 231 | - LLAPIManager.history(fromDate, toDate, new LLAPIManagerListener() { | |
| 232 | + ApiServices.history(fromDate, toDate, new LLAPIManagerListener() { | |
| 232 | 233 | @Override |
| 233 | 234 | public void onError(Error error) { |
| 234 | 235 | Debug.error("Get data history error"); |
app/src/main/java/com/dinhcv/lifelogpedometer/activity/HistoryDetailFragment.java
| ... | ... | @@ -20,6 +20,7 @@ |
| 20 | 20 | import com.dinhcv.lifelogpedometer.interfaces.LLAPIManagerListener; |
| 21 | 21 | import com.dinhcv.lifelogpedometer.model.structure.history.HistoryInfo; |
| 22 | 22 | import com.dinhcv.lifelogpedometer.model.structure.history.HistoryItemInfo; |
| 23 | +import com.dinhcv.lifelogpedometer.portal.ApiServices; | |
| 23 | 24 | import com.dinhcv.lifelogpedometer.portal.LLAPIManager; |
| 24 | 25 | import com.dinhcv.lifelogpedometer.utils.Const; |
| 25 | 26 | import com.dinhcv.lifelogpedometer.utils.Debug; |
| ... | ... | @@ -200,7 +201,7 @@ |
| 200 | 201 | Date fromDate = Utils.getFromDate(mAnaDate, dataType); |
| 201 | 202 | |
| 202 | 203 | showDialog(mContext); |
| 203 | - LLAPIManager.historyDetail(fromDate, toDate, new LLAPIManagerListener() { | |
| 204 | + ApiServices.historyDetail(fromDate, toDate, new LLAPIManagerListener() { | |
| 204 | 205 | @Override |
| 205 | 206 | public void onError(Error error) { |
| 206 | 207 | Debug.error("Get data history error"); |
app/src/main/java/com/dinhcv/lifelogpedometer/activity/InputConfirmCodeActivity.java
| ... | ... | @@ -13,6 +13,7 @@ |
| 13 | 13 | import com.dinhcv.lifelogpedometer.R; |
| 14 | 14 | import com.dinhcv.lifelogpedometer.interfaces.LLAPIManagerListener; |
| 15 | 15 | import com.dinhcv.lifelogpedometer.model.Shareprefer.Setting; |
| 16 | +import com.dinhcv.lifelogpedometer.portal.ApiServices; | |
| 16 | 17 | import com.dinhcv.lifelogpedometer.portal.LLAPIManager; |
| 17 | 18 | import com.dinhcv.lifelogpedometer.utils.Const; |
| 18 | 19 | import com.dinhcv.lifelogpedometer.utils.Debug; |
| ... | ... | @@ -60,7 +61,7 @@ |
| 60 | 61 | progressDialog.setCancelable(false); |
| 61 | 62 | progressDialog.show(); |
| 62 | 63 | |
| 63 | - LLAPIManager.forgetPassConfirm(mEmail, code, new LLAPIManagerListener() { | |
| 64 | + ApiServices.forgetPassConfirm(mEmail, code, new LLAPIManagerListener() { | |
| 64 | 65 | @Override |
| 65 | 66 | public void onError(Error error) { |
| 66 | 67 | progressDialog.dismiss(); |
app/src/main/java/com/dinhcv/lifelogpedometer/activity/LoginActivity.java
| ... | ... | @@ -13,6 +13,7 @@ |
| 13 | 13 | import com.dinhcv.lifelogpedometer.R; |
| 14 | 14 | import com.dinhcv.lifelogpedometer.interfaces.LLAPIManagerListener; |
| 15 | 15 | import com.dinhcv.lifelogpedometer.model.Shareprefer.Setting; |
| 16 | +import com.dinhcv.lifelogpedometer.portal.ApiServices; | |
| 16 | 17 | import com.dinhcv.lifelogpedometer.portal.LLAPIManager; |
| 17 | 18 | import com.dinhcv.lifelogpedometer.utils.Const; |
| 18 | 19 | import com.dinhcv.lifelogpedometer.utils.Debug; |
| ... | ... | @@ -84,7 +85,7 @@ |
| 84 | 85 | progressDialog.setCancelable(false); |
| 85 | 86 | progressDialog.show(); |
| 86 | 87 | |
| 87 | - LLAPIManager.login(LoginActivity.this, user, pass, new LLAPIManagerListener() { | |
| 88 | + ApiServices.login(LoginActivity.this, user, pass, new LLAPIManagerListener() { | |
| 88 | 89 | @Override |
| 89 | 90 | public void onError(Error error) { |
| 90 | 91 | progressDialog.dismiss(); |
| ... | ... | @@ -130,7 +131,7 @@ |
| 130 | 131 | progressDialog.setCancelable(false); |
| 131 | 132 | progressDialog.show(); |
| 132 | 133 | |
| 133 | - LLAPIManager.forgetPass(email, new LLAPIManagerListener() { | |
| 134 | + ApiServices.forgetPass(email, new LLAPIManagerListener() { | |
| 134 | 135 | @Override |
| 135 | 136 | public void onError(Error error) { |
| 136 | 137 | progressDialog.dismiss(); |
app/src/main/java/com/dinhcv/lifelogpedometer/activity/RegisterActivity.java
| ... | ... | @@ -26,6 +26,7 @@ |
| 26 | 26 | import com.dinhcv.lifelogpedometer.model.Shareprefer.Setting; |
| 27 | 27 | import com.dinhcv.lifelogpedometer.model.structure.RegisterInfo; |
| 28 | 28 | import com.dinhcv.lifelogpedometer.model.structure.SelectItemInfo; |
| 29 | +import com.dinhcv.lifelogpedometer.portal.ApiServices; | |
| 29 | 30 | import com.dinhcv.lifelogpedometer.portal.LLAPIManager; |
| 30 | 31 | import com.dinhcv.lifelogpedometer.utils.Debug; |
| 31 | 32 | import com.dinhcv.lifelogpedometer.utils.Utils; |
| ... | ... | @@ -261,7 +262,7 @@ |
| 261 | 262 | progressDialog.setCancelable(false); |
| 262 | 263 | progressDialog.show(); |
| 263 | 264 | |
| 264 | - LLAPIManager.register(mRegisterInfo, new LLAPIManagerListener() { | |
| 265 | + ApiServices.register(mRegisterInfo, new LLAPIManagerListener() { | |
| 265 | 266 | @Override |
| 266 | 267 | public void onError(Error error) { |
| 267 | 268 | progressDialog.dismiss(); |
| ... | ... | @@ -310,7 +311,7 @@ |
| 310 | 311 | progressDialog.setCancelable(false); |
| 311 | 312 | progressDialog.show(); |
| 312 | 313 | |
| 313 | - LLAPIManager.uploadImage(bitmap, new LLAPIManagerListener() { | |
| 314 | + ApiServices.uploadImage(bitmap, new LLAPIManagerListener() { | |
| 314 | 315 | @Override |
| 315 | 316 | public void onError(Error error) { |
| 316 | 317 | progressDialog.dismiss(); |
app/src/main/java/com/dinhcv/lifelogpedometer/activity/TopDateFragment.java
| ... | ... | @@ -19,6 +19,7 @@ |
| 19 | 19 | import com.dinhcv.lifelogpedometer.interfaces.LLAPIManagerListener; |
| 20 | 20 | import com.dinhcv.lifelogpedometer.model.structure.home.NoticeInfo; |
| 21 | 21 | import com.dinhcv.lifelogpedometer.model.structure.home.TagetInfo; |
| 22 | +import com.dinhcv.lifelogpedometer.portal.ApiServices; | |
| 22 | 23 | import com.dinhcv.lifelogpedometer.portal.LLAPIManager; |
| 23 | 24 | import com.dinhcv.lifelogpedometer.utils.Const; |
| 24 | 25 | import com.dinhcv.lifelogpedometer.utils.Debug; |
| ... | ... | @@ -114,6 +115,7 @@ |
| 114 | 115 | tvDate.setText(Utils.dateToStringFormatDayMonthYearJp(date)); |
| 115 | 116 | mAnaDate = date; |
| 116 | 117 | getHomePage(mAnaDate, stepType); |
| 118 | + getNews(mAnaDate); | |
| 117 | 119 | } |
| 118 | 120 | }); |
| 119 | 121 | |
| ... | ... | @@ -127,6 +129,7 @@ |
| 127 | 129 | tvDate.setText(Utils.dateToStringFormatDayMonthYearJp(date)); |
| 128 | 130 | mAnaDate = date; |
| 129 | 131 | getHomePage(mAnaDate, stepType); |
| 132 | + getNews(mAnaDate); | |
| 130 | 133 | } |
| 131 | 134 | }); |
| 132 | 135 | |
| ... | ... | @@ -195,6 +198,7 @@ |
| 195 | 198 | mAnaDate = date; |
| 196 | 199 | |
| 197 | 200 | getHomePage(mAnaDate, stepType); |
| 201 | + getNews(mAnaDate); | |
| 198 | 202 | } |
| 199 | 203 | }, mAnaYear, mAnaMonth, mAnaDay).show(); |
| 200 | 204 | |
| 201 | 205 | |
| ... | ... | @@ -217,13 +221,14 @@ |
| 217 | 221 | stepType = Const.STEP_TYPE.WALKING; |
| 218 | 222 | updateUiStepType(false, true, false); |
| 219 | 223 | getHomePage(mAnaDate, stepType); |
| 224 | + getNews(mAnaDate); | |
| 220 | 225 | } |
| 221 | 226 | |
| 222 | 227 | |
| 223 | 228 | private void getHomePage(Date date, Const.STEP_TYPE stepType){ |
| 224 | 229 | |
| 225 | 230 | showDialog(mContext); |
| 226 | - LLAPIManager.homePage(date, stepType, new LLAPIManagerListener() { | |
| 231 | + ApiServices.homePage(date, stepType, new LLAPIManagerListener() { | |
| 227 | 232 | @Override |
| 228 | 233 | public void onError(Error error) { |
| 229 | 234 | Debug.error("Get data history error"); |
| 230 | 235 | |
| 231 | 236 | |
| 232 | 237 | |
| 233 | 238 | |
| ... | ... | @@ -296,17 +301,70 @@ |
| 296 | 301 | tvStep.setText(String.valueOf(mTagetInfo.getSteps())); |
| 297 | 302 | tvRemain.setText(String.valueOf(mTagetInfo.getStepRemain())); |
| 298 | 303 | tvRateDone.setText(mContext.getResources().getString(R.string.percent_unit, mTagetInfo.getCompletePercent())); |
| 304 | + } | |
| 299 | 305 | |
| 300 | - List<NoticeInfo> infoLists = mTagetInfo.getNoticeList(); | |
| 301 | - if (infoLists != null && infoLists.size() >0){ | |
| 302 | - mNoticeAdapter = new NoticeAdapter(mContext, infoLists); | |
| 306 | + private void getNews(Date date){ | |
| 307 | + | |
| 308 | + ApiServices.getNews(date, new LLAPIManagerListener() { | |
| 309 | + @Override | |
| 310 | + public void onError(Error error) { | |
| 311 | + Debug.error("Get data news error"); | |
| 312 | + } | |
| 313 | + | |
| 314 | + @Override | |
| 315 | + public void onSuccess(String json) { | |
| 316 | + Debug.error("Get data news success"); | |
| 317 | + loadNewsDone(json); | |
| 318 | + } | |
| 319 | + | |
| 320 | + @Override | |
| 321 | + public void onSuccess(JSONObject object) { | |
| 322 | + Debug.error("Get data news success"); | |
| 323 | + } | |
| 324 | + }); | |
| 325 | + } | |
| 326 | + | |
| 327 | + private void loadNewsDone(String jsonString) { | |
| 328 | + | |
| 329 | + List<NoticeInfo> contentList = new ArrayList<>(); | |
| 330 | + JSONObject jsonObject = null; | |
| 331 | + try { | |
| 332 | + jsonObject = new JSONObject(jsonString); | |
| 333 | + int status = jsonObject.optInt("status"); | |
| 334 | + if (status == 1) { | |
| 335 | + JSONObject jsonResult = jsonObject.optJSONObject("result"); | |
| 336 | + JSONArray listNotice = jsonResult.getJSONArray("listNotice"); | |
| 337 | + | |
| 338 | + if (listNotice != null) { | |
| 339 | + | |
| 340 | + for (int i = 0; i < listNotice.length(); i++) { | |
| 341 | + JSONObject obContent = (JSONObject) listNotice.get(i); | |
| 342 | + String content = obContent.optString("notice_content"); | |
| 343 | + Debug.normal("Content: " + content); | |
| 344 | + contentList.add(new NoticeInfo(i+1,content)); | |
| 345 | + } | |
| 346 | + } | |
| 347 | + | |
| 348 | + } | |
| 349 | + } catch (JSONException e) { | |
| 350 | + e.printStackTrace(); | |
| 351 | + } | |
| 352 | + | |
| 353 | + addNews(contentList); | |
| 354 | + } | |
| 355 | + | |
| 356 | + private void addNews(List<NoticeInfo> noticeInfos){ | |
| 357 | + if (noticeInfos != null && noticeInfos.size() >0){ | |
| 358 | + mNoticeAdapter = new NoticeAdapter(mContext, noticeInfos); | |
| 303 | 359 | lvNotice.setAdapter(mNoticeAdapter); |
| 304 | 360 | lvNotice.setExpanded(true); |
| 361 | + }else { | |
| 362 | + lvNotice.setAdapter(null); | |
| 305 | 363 | } |
| 306 | - | |
| 307 | 364 | } |
| 308 | 365 | |
| 309 | 366 | |
| 367 | + | |
| 310 | 368 | @Override |
| 311 | 369 | public void onAttach(Context context) { |
| 312 | 370 | super.onAttach(context); |
| ... | ... | @@ -337,6 +395,8 @@ |
| 337 | 395 | super.onActivityResult(requestCode, resultCode, data); |
| 338 | 396 | |
| 339 | 397 | } |
| 398 | + | |
| 399 | + | |
| 340 | 400 | |
| 341 | 401 | } |
app/src/main/java/com/dinhcv/lifelogpedometer/activity/TopTodayFragment.java
| ... | ... | @@ -26,6 +26,7 @@ |
| 26 | 26 | import com.dinhcv.lifelogpedometer.model.StepModel; |
| 27 | 27 | import com.dinhcv.lifelogpedometer.model.structure.top.StepItemInfo; |
| 28 | 28 | import com.dinhcv.lifelogpedometer.model.structure.top.TopInfo; |
| 29 | +import com.dinhcv.lifelogpedometer.portal.ApiServices; | |
| 29 | 30 | import com.dinhcv.lifelogpedometer.portal.LLAPIManager; |
| 30 | 31 | import com.dinhcv.lifelogpedometer.utils.Const; |
| 31 | 32 | import com.dinhcv.lifelogpedometer.utils.DayAxisValueFormatter; |
| 32 | 33 | |
| ... | ... | @@ -135,8 +136,11 @@ |
| 135 | 136 | // slice for the "missing" steps until reaching the goal |
| 136 | 137 | sliceGoal = new PieModel("", Const.STEP_GOAL, Color.parseColor("#B7B8B6")); |
| 137 | 138 | pg.addPieSlice(sliceGoal); |
| 139 | + | |
| 138 | 140 | pg.setDrawValueInPie(false); |
| 139 | 141 | pg.setUsePieRotation(false); |
| 142 | + pg.setInnerPadding(93); | |
| 143 | + pg.setInnerPaddingColor(R.color.background_main); | |
| 140 | 144 | pg.startAnimation(); |
| 141 | 145 | pg.setAutoCenterInSlice(false); |
| 142 | 146 | |
| ... | ... | @@ -222,7 +226,7 @@ |
| 222 | 226 | progress.setMessage(getString(R.string.loading)); |
| 223 | 227 | progress.setCancelable(false); |
| 224 | 228 | progress.show(); |
| 225 | - LLAPIManager.topInfo(date, stepType, new LLAPIManagerListener() { | |
| 229 | + ApiServices.topInfo(date, stepType, new LLAPIManagerListener() { | |
| 226 | 230 | @Override |
| 227 | 231 | public void onError(Error error) { |
| 228 | 232 | Debug.error("Get data history error"); |
| 229 | 233 | |
| 230 | 234 | |
| ... | ... | @@ -587,10 +591,13 @@ |
| 587 | 591 | public void onResume() { |
| 588 | 592 | super.onResume(); |
| 589 | 593 | activityRunning = true; |
| 594 | + Debug.normal("Today: "+ "Onresume "); | |
| 590 | 595 | Sensor countSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER); |
| 591 | 596 | if (countSensor != null) { |
| 597 | + Debug.normal("Today: "+ "countSensor not null "); | |
| 592 | 598 | sensorManager.registerListener(this, countSensor, SensorManager.SENSOR_DELAY_UI); |
| 593 | 599 | } else { |
| 600 | + Debug.normal("Today: "+ "countSensor is null "); | |
| 594 | 601 | Toast.makeText(mContext, getResources().getString(R.string.sensor_available), Toast.LENGTH_SHORT).show(); |
| 595 | 602 | } |
| 596 | 603 | } |
| 597 | 604 | |
| ... | ... | @@ -631,8 +638,9 @@ |
| 631 | 638 | } |
| 632 | 639 | |
| 633 | 640 | private void creatLogStep(){ |
| 641 | + Debug.normal("Today: "+ "Create log "+ stepCount); | |
| 634 | 642 | |
| 635 | - LLAPIManager.createLog(stepType, stepCount, mFromDate, mToDate, new LLAPIManagerListener() { | |
| 643 | + ApiServices.createLog(stepType, stepCount, mFromDate, mToDate, new LLAPIManagerListener() { | |
| 636 | 644 | @Override |
| 637 | 645 | public void onError(Error error) { |
| 638 | 646 | Debug.error("Get data history error"); |
| ... | ... | @@ -649,6 +657,8 @@ |
| 649 | 657 | } |
| 650 | 658 | }); |
| 651 | 659 | } |
| 660 | + | |
| 661 | + | |
| 652 | 662 | |
| 653 | 663 | } |
app/src/main/java/com/dinhcv/lifelogpedometer/activity/WelcomeActivity.java
| ... | ... | @@ -11,6 +11,7 @@ |
| 11 | 11 | import com.dinhcv.lifelogpedometer.R; |
| 12 | 12 | import com.dinhcv.lifelogpedometer.interfaces.LLAPIManagerListener; |
| 13 | 13 | import com.dinhcv.lifelogpedometer.model.Shareprefer.Setting; |
| 14 | +import com.dinhcv.lifelogpedometer.portal.ApiServices; | |
| 14 | 15 | import com.dinhcv.lifelogpedometer.portal.LLAPIManager; |
| 15 | 16 | import com.dinhcv.lifelogpedometer.utils.Debug; |
| 16 | 17 | |
| ... | ... | @@ -40,7 +41,7 @@ |
| 40 | 41 | |
| 41 | 42 | private void handleRefreshToken(int id) { |
| 42 | 43 | |
| 43 | - LLAPIManager.refreshToken(WelcomeActivity.this, id, new LLAPIManagerListener() { | |
| 44 | + ApiServices.refreshToken(WelcomeActivity.this, id, new LLAPIManagerListener() { | |
| 44 | 45 | @Override |
| 45 | 46 | public void onError(Error error) { |
| 46 | 47 | Debug.error("Version JSON result: ERROR " + error); |
app/src/main/java/com/dinhcv/lifelogpedometer/model/structure/home/NoticeInfo.java
app/src/main/java/com/dinhcv/lifelogpedometer/portal/ApiServices.java
| 1 | +package com.dinhcv.lifelogpedometer.portal; | |
| 2 | + | |
| 3 | +import android.content.Context; | |
| 4 | +import android.graphics.Bitmap; | |
| 5 | + | |
| 6 | +import com.dinhcv.lifelogpedometer.interfaces.LLAPIManagerListener; | |
| 7 | +import com.dinhcv.lifelogpedometer.model.structure.RegisterInfo; | |
| 8 | +import com.dinhcv.lifelogpedometer.utils.Const; | |
| 9 | + | |
| 10 | +import java.util.Date; | |
| 11 | + | |
| 12 | +/** | |
| 13 | + * Created by Administrator on 16/11/2017. | |
| 14 | + */ | |
| 15 | + | |
| 16 | +public class ApiServices { | |
| 17 | + | |
| 18 | + public static void topInfo(final Date date, final Const.STEP_TYPE stepType, final LLAPIManagerListener action){ | |
| 19 | + new LLAPIManager.TopInfo(date, stepType, action).execute(); | |
| 20 | + } | |
| 21 | + | |
| 22 | + public static void homePage(final Date date, final Const.STEP_TYPE stepType, final LLAPIManagerListener action) { | |
| 23 | + new LLAPIManager.HomePage(date, stepType, action).execute(); | |
| 24 | + } | |
| 25 | + | |
| 26 | + | |
| 27 | + public static void historyDetail(final Date fromDate, final Date toDate, final LLAPIManagerListener action) { | |
| 28 | + new LLAPIManager.HistoryDetail(fromDate, toDate, action).execute(); | |
| 29 | + } | |
| 30 | + | |
| 31 | + | |
| 32 | + public static void history(final Date fromDate, final Date toDate, final LLAPIManagerListener action) { | |
| 33 | + new LLAPIManager.History(fromDate, toDate, action).execute(); | |
| 34 | + } | |
| 35 | + | |
| 36 | + | |
| 37 | + public static void forgetPassConfirm(final String email, final String codeConfirm, final LLAPIManagerListener action) { | |
| 38 | + new LLAPIManager.ForgetPassConfirm(email, codeConfirm, action).execute(); | |
| 39 | + } | |
| 40 | + | |
| 41 | + | |
| 42 | + public static void forgetPass(final String email, final LLAPIManagerListener action) { | |
| 43 | + new LLAPIManager.ForgetPass(email, action).execute(); | |
| 44 | + } | |
| 45 | + | |
| 46 | + | |
| 47 | + public static void register(final RegisterInfo registerInfo, final LLAPIManagerListener action) { | |
| 48 | + new LLAPIManager.Register(registerInfo, action).execute(); | |
| 49 | + } | |
| 50 | + | |
| 51 | + | |
| 52 | + public static void uploadImage(final Bitmap bitmap, final LLAPIManagerListener action) { | |
| 53 | + new LLAPIManager.UploadImage(bitmap, action).execute(); | |
| 54 | + } | |
| 55 | + | |
| 56 | + | |
| 57 | + public static void login(final Context context, final String email, final String pass, final LLAPIManagerListener action) { | |
| 58 | + new LLAPIManager.Login(context, email, pass, action).execute(); | |
| 59 | + } | |
| 60 | + | |
| 61 | + public static void createLog(final Const.STEP_TYPE stepType, final int stepCount, final Date startTime, | |
| 62 | + final Date endTime, final LLAPIManagerListener action) { | |
| 63 | + new LLAPIManager.CreateLog(stepType, stepCount, startTime, endTime, action).execute(); | |
| 64 | + } | |
| 65 | + | |
| 66 | + | |
| 67 | + public static void refreshToken(final Context context, final int userId, final LLAPIManagerListener action) { | |
| 68 | + new LLAPIManager.RefreshToken(context, userId, action).execute(); | |
| 69 | + } | |
| 70 | + | |
| 71 | + public static void getNews(final Date date, final LLAPIManagerListener action) { | |
| 72 | + new LLAPIManager.GetNews(date, action).execute(); | |
| 73 | + } | |
| 74 | + | |
| 75 | + | |
| 76 | +} |
app/src/main/java/com/dinhcv/lifelogpedometer/portal/LLAPIManager.java
| ... | ... | @@ -23,16 +23,9 @@ |
| 23 | 23 | import java.io.ByteArrayOutputStream; |
| 24 | 24 | import java.io.IOException; |
| 25 | 25 | import java.io.InputStream; |
| 26 | -import java.util.ArrayList; | |
| 27 | -import java.util.Arrays; | |
| 28 | 26 | import java.util.Date; |
| 29 | -import java.util.HashMap; | |
| 30 | -import java.util.List; | |
| 31 | -import java.util.UUID; | |
| 32 | 27 | import java.util.concurrent.TimeUnit; |
| 33 | 28 | |
| 34 | -import okhttp3.Call; | |
| 35 | -import okhttp3.Callback; | |
| 36 | 29 | import okhttp3.HttpUrl; |
| 37 | 30 | import okhttp3.MediaType; |
| 38 | 31 | import okhttp3.OkHttpClient; |
| 39 | 32 | |
| 40 | 33 | |
| 41 | 34 | |
| 42 | 35 | |
| 43 | 36 | |
| 44 | 37 | |
| 45 | 38 | |
| 46 | 39 | |
| 47 | 40 | |
| 48 | 41 | |
| 49 | 42 | |
| 50 | 43 | |
| 51 | 44 | |
| ... | ... | @@ -42,36 +35,48 @@ |
| 42 | 35 | import okhttp3.ResponseBody; |
| 43 | 36 | |
| 44 | 37 | public class LLAPIManager { |
| 45 | - public static String URL_ROOT = "http://clover.timesfun.jp:9001/"; | |
| 38 | + private static String URL_ROOT = "http://clover.timesfun.jp:9001/"; | |
| 46 | 39 | //login info |
| 47 | - public static String URL_LOGIN_INFO = "login"; | |
| 40 | + private static String URL_LOGIN_INFO = "login"; | |
| 48 | 41 | //register info |
| 49 | - public static String URL_REGISTER_INFO = "register"; | |
| 42 | + private static String URL_REGISTER_INFO = "register"; | |
| 50 | 43 | //upload image info |
| 51 | - public static String URL_UPLOAD_IMAGE_INFO = "upload-image"; | |
| 44 | + private static String URL_UPLOAD_IMAGE_INFO = "upload-image"; | |
| 52 | 45 | //Search zipcode |
| 53 | - public static String URL_FORGET_PASS_INFO = "forgetPass"; | |
| 46 | + private static String URL_FORGET_PASS_INFO = "forgetPass"; | |
| 54 | 47 | //history |
| 55 | - public static String URL_HISTORE_INFO = "api/history"; | |
| 48 | + private static String URL_HISTORE_INFO = "api/history"; | |
| 56 | 49 | //history detail |
| 57 | - public static String URL_HISTORE_DETAIL_INFO = "api/history/detail"; | |
| 50 | + private static String URL_HISTORE_DETAIL_INFO = "api/history/detail"; | |
| 58 | 51 | // home |
| 59 | - public static String URL_HOME_INFO = "api/home"; | |
| 52 | + private static String URL_HOME_INFO = "api/home"; | |
| 60 | 53 | //Search zipcode |
| 61 | - public static String URL_FORGET_PASS_CONFIRM_INFO = "forgetPass/confirm"; | |
| 54 | + private static String URL_FORGET_PASS_CONFIRM_INFO = "forgetPass/confirm"; | |
| 62 | 55 | // Refesh Token |
| 63 | - public static String URL_REFESH_TOKEN_INFO = "refreshToken"; | |
| 56 | + private static String URL_REFESH_TOKEN_INFO = "refreshToken"; | |
| 64 | 57 | // Top info |
| 65 | - public static String URL_TOP_INFO = "api/top"; | |
| 58 | + private static String URL_TOP_INFO = "api/top"; | |
| 66 | 59 | // Refesh Token |
| 67 | - public static String URL_CREATE_LOG_INFO = "api/createLog"; | |
| 60 | + private static String URL_CREATE_LOG_INFO = "api/createLog"; | |
| 61 | + // Get news | |
| 62 | + private static String URL_GET_NEWS_INFO = "api/getnoticesbydate"; | |
| 68 | 63 | |
| 69 | 64 | |
| 70 | - | |
| 71 | 65 | private static int deviationValue = 1; |
| 72 | 66 | |
| 73 | - public static void login(final Context context, final String email, final String pass, final LLAPIManagerListener action) { | |
| 74 | - new AsyncTask<Void, Void, String>() { | |
| 67 | + public static class Login extends AsyncTask<Void, Void, String>{ | |
| 68 | + private Context context; | |
| 69 | + private String email; | |
| 70 | + private String pass; | |
| 71 | + private LLAPIManagerListener action; | |
| 72 | + | |
| 73 | + public Login(Context context, String email, String pass, LLAPIManagerListener action) { | |
| 74 | + this.context = context; | |
| 75 | + this.email = email; | |
| 76 | + this.pass = pass; | |
| 77 | + this.action = action; | |
| 78 | + } | |
| 79 | + | |
| 75 | 80 | @Override |
| 76 | 81 | protected void onPreExecute() { |
| 77 | 82 | super.onPreExecute(); |
| 78 | 83 | |
| ... | ... | @@ -159,11 +164,17 @@ |
| 159 | 164 | e.printStackTrace(); |
| 160 | 165 | } |
| 161 | 166 | } |
| 162 | - }.execute(); | |
| 163 | 167 | } |
| 164 | 168 | |
| 165 | - public static void uploadImage(final Bitmap bitmap, final LLAPIManagerListener action) { | |
| 166 | - new AsyncTask<Void, Void, String>() { | |
| 169 | + public static class UploadImage extends AsyncTask<Void, Void, String>{ | |
| 170 | + private Bitmap bitmap; | |
| 171 | + private LLAPIManagerListener action; | |
| 172 | + | |
| 173 | + public UploadImage(Bitmap bitmap, LLAPIManagerListener action) { | |
| 174 | + this.bitmap = bitmap; | |
| 175 | + this.action = action; | |
| 176 | + } | |
| 177 | + | |
| 167 | 178 | @Override |
| 168 | 179 | protected void onPreExecute() { |
| 169 | 180 | super.onPreExecute(); |
| 170 | 181 | |
| ... | ... | @@ -249,11 +260,17 @@ |
| 249 | 260 | e.printStackTrace(); |
| 250 | 261 | } |
| 251 | 262 | } |
| 252 | - }.execute(); | |
| 253 | 263 | } |
| 254 | 264 | |
| 255 | - public static void register(final RegisterInfo registerInfo, final LLAPIManagerListener action) { | |
| 256 | - new AsyncTask<Void, Void, String>() { | |
| 265 | + public static class Register extends AsyncTask<Void, Void, String>{ | |
| 266 | + private RegisterInfo registerInfo; | |
| 267 | + private LLAPIManagerListener action; | |
| 268 | + | |
| 269 | + public Register(RegisterInfo registerInfo, LLAPIManagerListener action) { | |
| 270 | + this.registerInfo = registerInfo; | |
| 271 | + this.action = action; | |
| 272 | + } | |
| 273 | + | |
| 257 | 274 | @Override |
| 258 | 275 | protected void onPreExecute() { |
| 259 | 276 | super.onPreExecute(); |
| ... | ... | @@ -356,7 +373,6 @@ |
| 356 | 373 | } |
| 357 | 374 | |
| 358 | 375 | } |
| 359 | - }.execute(); | |
| 360 | 376 | } |
| 361 | 377 | |
| 362 | 378 | private static byte[] convertBitmapToByteArray(Bitmap bitmap) { |
| 363 | 379 | |
| ... | ... | @@ -366,9 +382,14 @@ |
| 366 | 382 | return byteArray; |
| 367 | 383 | } |
| 368 | 384 | |
| 369 | - public static void forgetPass(final String email, final LLAPIManagerListener action) { | |
| 370 | - new AsyncTask<Void, Void, String>() { | |
| 385 | + public static class ForgetPass extends AsyncTask<Void, Void, String>{ | |
| 386 | + private String email; | |
| 387 | + private LLAPIManagerListener action; | |
| 371 | 388 | |
| 389 | + public ForgetPass(String email, LLAPIManagerListener action) { | |
| 390 | + this.email = email; | |
| 391 | + this.action = action; | |
| 392 | + } | |
| 372 | 393 | |
| 373 | 394 | @Override |
| 374 | 395 | protected void onPreExecute() { |
| 375 | 396 | |
| 376 | 397 | |
| ... | ... | @@ -447,12 +468,19 @@ |
| 447 | 468 | action.onError(null); |
| 448 | 469 | } |
| 449 | 470 | } |
| 450 | - }.execute(); | |
| 471 | + | |
| 451 | 472 | } |
| 452 | 473 | |
| 453 | - public static void forgetPassConfirm(final String email, final String codeConfirm, final LLAPIManagerListener action) { | |
| 454 | - new AsyncTask<Void, Void, String>() { | |
| 474 | + public static class ForgetPassConfirm extends AsyncTask<Void, Void, String>{ | |
| 475 | + private String email; | |
| 476 | + private String codeConfirm; | |
| 477 | + private LLAPIManagerListener action; | |
| 455 | 478 | |
| 479 | + public ForgetPassConfirm(String email, String codeConfirm, LLAPIManagerListener action) { | |
| 480 | + this.email = email; | |
| 481 | + this.codeConfirm = codeConfirm; | |
| 482 | + this.action = action; | |
| 483 | + } | |
| 456 | 484 | |
| 457 | 485 | @Override |
| 458 | 486 | protected void onPreExecute() { |
| 459 | 487 | |
| 460 | 488 | |
| ... | ... | @@ -531,12 +559,18 @@ |
| 531 | 559 | action.onError(null); |
| 532 | 560 | } |
| 533 | 561 | } |
| 534 | - }.execute(); | |
| 535 | 562 | } |
| 536 | 563 | |
| 537 | - public static void history(final Date fromDate, final Date toDate, final LLAPIManagerListener action) { | |
| 538 | - new AsyncTask<Void, Void, String>() { | |
| 564 | + public static class History extends AsyncTask<Void, Void, String>{ | |
| 565 | + private Date fromDate; | |
| 566 | + private Date toDate; | |
| 567 | + private LLAPIManagerListener action; | |
| 539 | 568 | |
| 569 | + public History(Date fromDate, Date toDate, LLAPIManagerListener action) { | |
| 570 | + this.fromDate = fromDate; | |
| 571 | + this.toDate = toDate; | |
| 572 | + this.action = action; | |
| 573 | + } | |
| 540 | 574 | |
| 541 | 575 | @Override |
| 542 | 576 | protected void onPreExecute() { |
| 543 | 577 | |
| 544 | 578 | |
| ... | ... | @@ -607,12 +641,18 @@ |
| 607 | 641 | action.onError(null); |
| 608 | 642 | } |
| 609 | 643 | } |
| 610 | - }.execute(); | |
| 611 | 644 | } |
| 612 | 645 | |
| 613 | - public static void historyDetail(final Date fromDate, final Date toDate, final LLAPIManagerListener action) { | |
| 614 | - new AsyncTask<Void, Void, String>() { | |
| 646 | + public static class HistoryDetail extends AsyncTask<Void, Void, String>{ | |
| 647 | + private Date fromDate; | |
| 648 | + private Date toDate; | |
| 649 | + private LLAPIManagerListener action; | |
| 615 | 650 | |
| 651 | + public HistoryDetail(Date fromDate, Date toDate, LLAPIManagerListener action) { | |
| 652 | + this.fromDate = fromDate; | |
| 653 | + this.toDate = toDate; | |
| 654 | + this.action = action; | |
| 655 | + } | |
| 616 | 656 | |
| 617 | 657 | @Override |
| 618 | 658 | protected void onPreExecute() { |
| 619 | 659 | |
| 620 | 660 | |
| ... | ... | @@ -683,12 +723,19 @@ |
| 683 | 723 | action.onError(null); |
| 684 | 724 | } |
| 685 | 725 | } |
| 686 | - }.execute(); | |
| 726 | + | |
| 687 | 727 | } |
| 688 | 728 | |
| 689 | - public static void homePage(final Date date, final Const.STEP_TYPE stepType, final LLAPIManagerListener action) { | |
| 690 | - new AsyncTask<Void, Void, String>() { | |
| 729 | + public static class HomePage extends AsyncTask<Void, Void, String>{ | |
| 730 | + private Date date; | |
| 731 | + private Const.STEP_TYPE stepType; | |
| 732 | + private LLAPIManagerListener action; | |
| 691 | 733 | |
| 734 | + public HomePage(Date date, Const.STEP_TYPE stepType, LLAPIManagerListener action) { | |
| 735 | + this.date = date; | |
| 736 | + this.stepType = stepType; | |
| 737 | + this.action = action; | |
| 738 | + } | |
| 692 | 739 | |
| 693 | 740 | @Override |
| 694 | 741 | protected void onPreExecute() { |
| 695 | 742 | |
| 696 | 743 | |
| ... | ... | @@ -758,12 +805,19 @@ |
| 758 | 805 | action.onError(null); |
| 759 | 806 | } |
| 760 | 807 | } |
| 761 | - }.execute(); | |
| 808 | + | |
| 762 | 809 | } |
| 763 | 810 | |
| 764 | - public static void topInfo(final Date date, final Const.STEP_TYPE stepType, final LLAPIManagerListener action) { | |
| 765 | - new AsyncTask<Void, Void, String>() { | |
| 811 | + public static class TopInfo extends AsyncTask<Void, Void, String>{ | |
| 812 | + private Date date; | |
| 813 | + private Const.STEP_TYPE stepType; | |
| 814 | + private LLAPIManagerListener action; | |
| 766 | 815 | |
| 816 | + public TopInfo(Date date, Const.STEP_TYPE stepType, LLAPIManagerListener action) { | |
| 817 | + this.date = date; | |
| 818 | + this.stepType = stepType; | |
| 819 | + this.action = action; | |
| 820 | + } | |
| 767 | 821 | |
| 768 | 822 | @Override |
| 769 | 823 | protected void onPreExecute() { |
| 770 | 824 | |
| 771 | 825 | |
| 772 | 826 | |
| ... | ... | @@ -833,14 +887,25 @@ |
| 833 | 887 | action.onError(null); |
| 834 | 888 | } |
| 835 | 889 | } |
| 836 | - }.execute(); | |
| 890 | + | |
| 837 | 891 | } |
| 838 | 892 | |
| 839 | - public static void createLog(final Const.STEP_TYPE stepType, final int stepCount, final Date startTime, | |
| 840 | - final Date endTime, final LLAPIManagerListener action) { | |
| 841 | - new AsyncTask<Void, Void, String>() { | |
| 893 | + public static class CreateLog extends AsyncTask<Void, Void, String>{ | |
| 894 | + private int stepCount; | |
| 895 | + private Const.STEP_TYPE stepType; | |
| 896 | + private Date startTime; | |
| 897 | + private Date endTime; | |
| 898 | + private LLAPIManagerListener action; | |
| 842 | 899 | |
| 900 | + public CreateLog(Const.STEP_TYPE stepType, int stepCount, Date startTime, Date endTime, LLAPIManagerListener action) { | |
| 901 | + this.stepCount = stepCount; | |
| 902 | + this.stepType = stepType; | |
| 903 | + this.startTime = startTime; | |
| 904 | + this.endTime = endTime; | |
| 905 | + this.action = action; | |
| 906 | + } | |
| 843 | 907 | |
| 908 | + | |
| 844 | 909 | @Override |
| 845 | 910 | protected void onPreExecute() { |
| 846 | 911 | super.onPreExecute(); |
| 847 | 912 | |
| 848 | 913 | |
| ... | ... | @@ -923,12 +988,18 @@ |
| 923 | 988 | action.onError(null); |
| 924 | 989 | } |
| 925 | 990 | } |
| 926 | - }.execute(); | |
| 927 | 991 | } |
| 928 | 992 | |
| 929 | - public static void refreshToken(final Context context, final int userId, final LLAPIManagerListener action) { | |
| 930 | - new AsyncTask<Void, Void, String>() { | |
| 993 | + public static class RefreshToken extends AsyncTask<Void, Void, String>{ | |
| 994 | + private Context context; | |
| 995 | + private int userId; | |
| 996 | + private LLAPIManagerListener action; | |
| 931 | 997 | |
| 998 | + public RefreshToken(Context context, int userId, LLAPIManagerListener action) { | |
| 999 | + this.context = context; | |
| 1000 | + this.userId = userId; | |
| 1001 | + this.action = action; | |
| 1002 | + } | |
| 932 | 1003 | |
| 933 | 1004 | @Override |
| 934 | 1005 | protected void onPreExecute() { |
| ... | ... | @@ -1013,7 +1084,85 @@ |
| 1013 | 1084 | action.onError(null); |
| 1014 | 1085 | } |
| 1015 | 1086 | } |
| 1016 | - }.execute(); | |
| 1087 | + } | |
| 1088 | + | |
| 1089 | + public static class GetNews extends AsyncTask<Void, Void, String>{ | |
| 1090 | + private Date date; | |
| 1091 | + private LLAPIManagerListener action; | |
| 1092 | + | |
| 1093 | + public GetNews(Date date, LLAPIManagerListener action) { | |
| 1094 | + this.date = date; | |
| 1095 | + this.action = action; | |
| 1096 | + } | |
| 1097 | + | |
| 1098 | + @Override | |
| 1099 | + protected void onPreExecute() { | |
| 1100 | + super.onPreExecute(); | |
| 1101 | + } | |
| 1102 | + | |
| 1103 | + @Override | |
| 1104 | + protected String doInBackground(Void... voids) { | |
| 1105 | + String fromStr = Utils.dateToStringFormatDayMonthYear(date); | |
| 1106 | + Debug.normal("Token: "+ APIResponse.getInstance().getToken()); | |
| 1107 | + HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_GET_NEWS_INFO + "/"+ fromStr); | |
| 1108 | + Debug.normal("URL: "+baseUrl.toString()); | |
| 1109 | + final Request.Builder request = new Request.Builder() | |
| 1110 | + .url(baseUrl) | |
| 1111 | + .header("User-Agent", Utils.getCustomUA()) | |
| 1112 | + .header("Content-Type", "application/json") | |
| 1113 | + .addHeader("token", APIResponse.getInstance().getToken()) | |
| 1114 | + .get(); | |
| 1115 | + | |
| 1116 | + OkHttpClient httpClient = new OkHttpClient.Builder() | |
| 1117 | + .readTimeout(30, TimeUnit.SECONDS) | |
| 1118 | + .writeTimeout(30, TimeUnit.SECONDS) | |
| 1119 | + .connectTimeout(30, TimeUnit.SECONDS) | |
| 1120 | + .build(); | |
| 1121 | + | |
| 1122 | + String jsonString = null; | |
| 1123 | + try { | |
| 1124 | + Response response = httpClient.newCall(request.build()).execute(); | |
| 1125 | + if (response == null) { | |
| 1126 | + action.onError(null); | |
| 1127 | + Debug.error("Response is null"); | |
| 1128 | + return null; | |
| 1129 | + } | |
| 1130 | + jsonString = getResponseData(response.body()); | |
| 1131 | + | |
| 1132 | + } catch (IOException e) { | |
| 1133 | + Debug.normal("Error %s", e.getMessage()); | |
| 1134 | + } | |
| 1135 | + return jsonString; | |
| 1136 | + } | |
| 1137 | + | |
| 1138 | + @Override | |
| 1139 | + protected void onCancelled() { | |
| 1140 | + super.onCancelled(); | |
| 1141 | + action.onError(null); | |
| 1142 | + } | |
| 1143 | + | |
| 1144 | + @Override | |
| 1145 | + protected void onPostExecute(String jsonString) { | |
| 1146 | + super.onPostExecute(jsonString); | |
| 1147 | + if ((jsonString == null) || (jsonString.isEmpty())) { | |
| 1148 | + action.onError(null); | |
| 1149 | + return; | |
| 1150 | + } | |
| 1151 | + Debug.normal("String body: "+jsonString); | |
| 1152 | + | |
| 1153 | + try { | |
| 1154 | + JSONObject jsonObject = new JSONObject(jsonString); | |
| 1155 | + int status = jsonObject.optInt("status"); | |
| 1156 | + if (status == 1) { | |
| 1157 | + // save data | |
| 1158 | + action.onSuccess(jsonString); | |
| 1159 | + } else { | |
| 1160 | + action.onError(new Error(jsonObject.getString("message"))); | |
| 1161 | + } | |
| 1162 | + } catch (JSONException e) { | |
| 1163 | + action.onError(null); | |
| 1164 | + } | |
| 1165 | + } | |
| 1017 | 1166 | } |
| 1018 | 1167 | |
| 1019 | 1168 | public static Bitmap getBitmapFromAsset(Context context, String filePath) { |
app/src/main/res/layout/fragment_history_content.xml
| ... | ... | @@ -184,6 +184,7 @@ |
| 184 | 184 | android:layout_weight="1" |
| 185 | 185 | android:background="@drawable/button_background" |
| 186 | 186 | android:lines="2" |
| 187 | + android:layout_margin="2dp" | |
| 187 | 188 | android:text="@string/facebook" /> |
| 188 | 189 | |
| 189 | 190 | <Button |
| ... | ... | @@ -194,6 +195,7 @@ |
| 194 | 195 | android:layout_weight="1" |
| 195 | 196 | android:background="@drawable/button_background" |
| 196 | 197 | android:lines="2" |
| 198 | + android:layout_margin="2dp" | |
| 197 | 199 | android:text="@string/twitter" /> |
| 198 | 200 | |
| 199 | 201 | <Button |
| ... | ... | @@ -204,6 +206,7 @@ |
| 204 | 206 | android:layout_weight="1" |
| 205 | 207 | android:background="@drawable/button_background" |
| 206 | 208 | android:lines="2" |
| 209 | + android:layout_margin="2dp" | |
| 207 | 210 | android:text="@string/line" /> |
| 208 | 211 | |
| 209 | 212 | <Button |
| ... | ... | @@ -214,6 +217,7 @@ |
| 214 | 217 | android:layout_weight="1" |
| 215 | 218 | android:background="@drawable/button_background" |
| 216 | 219 | android:lines="2" |
| 220 | + android:layout_margin="2dp" | |
| 217 | 221 | android:text="@string/mail" /> |
| 218 | 222 | |
| 219 | 223 | <Button |
| ... | ... | @@ -224,6 +228,7 @@ |
| 224 | 228 | android:layout_weight="1" |
| 225 | 229 | android:background="@drawable/button_background" |
| 226 | 230 | android:lines="2" |
| 231 | + android:layout_margin="2dp" | |
| 227 | 232 | android:text="@string/other" /> |
| 228 | 233 | |
| 229 | 234 | </LinearLayout> |
build.gradle
| ... | ... | @@ -3,9 +3,13 @@ |
| 3 | 3 | buildscript { |
| 4 | 4 | repositories { |
| 5 | 5 | jcenter() |
| 6 | + maven { | |
| 7 | + url 'https://maven.google.com/' | |
| 8 | + name 'Google' | |
| 9 | + } | |
| 6 | 10 | } |
| 7 | 11 | dependencies { |
| 8 | - classpath 'com.android.tools.build:gradle:2.3.3' | |
| 12 | + classpath 'com.android.tools.build:gradle:3.0.0' | |
| 9 | 13 | |
| 10 | 14 | // NOTE: Do not place your application dependencies here; they belong |
| 11 | 15 | // in the individual module build.gradle files |
| ... | ... | @@ -16,6 +20,10 @@ |
| 16 | 20 | repositories { |
| 17 | 21 | jcenter() |
| 18 | 22 | maven { url "https://jitpack.io" } |
| 23 | + maven { | |
| 24 | + url 'https://maven.google.com/' | |
| 25 | + name 'Google' | |
| 26 | + } | |
| 19 | 27 | } |
| 20 | 28 | } |
| 21 | 29 |
gradle/wrapper/gradle-wrapper.properties
| 1 | -#Thu Jul 27 00:11:14 ICT 2017 | |
| 1 | +#Thu Nov 16 22:05:25 ICT 2017 | |
| 2 | 2 | distributionBase=GRADLE_USER_HOME |
| 3 | 3 | distributionPath=wrapper/dists |
| 4 | 4 | zipStoreBase=GRADLE_USER_HOME |
| 5 | 5 | zipStorePath=wrapper/dists |
| 6 | -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip | |
| 6 | +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip |