Commit 9c431985f72992e326242adb85697b35bb2a132b
1 parent
260f822ff9
Exists in
master
ipdate
Showing 8 changed files with 266 additions and 52 deletions Inline Diff
- app/src/main/AndroidManifest.xml
- app/src/main/java/com/dinhcv/lifelogpedometer/activity/PedometerActivity.java
- app/src/main/java/com/dinhcv/lifelogpedometer/activity/RegisterActivity.java
- app/src/main/java/com/dinhcv/lifelogpedometer/activity/WelcomeActivity.java
- app/src/main/java/com/dinhcv/lifelogpedometer/portal/LLAPIManager.java
- app/src/main/java/com/dinhcv/lifelogpedometer/portal/RequestPostImage.java
- app/src/main/res/drawable/add_ic.PNG
- app/src/main/res/layout/activity_register.xml
app/src/main/AndroidManifest.xml
1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" | 2 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
3 | package="com.dinhcv.lifelogpedometer"> | 3 | package="com.dinhcv.lifelogpedometer"> |
4 | 4 | ||
5 | <uses-feature | 5 | <uses-feature |
6 | android:name="android.hardware.sensor.stepcounter" | 6 | android:name="android.hardware.sensor.stepcounter" |
7 | android:required="true" /> | 7 | android:required="true" /> |
8 | 8 | ||
9 | <uses-permission android:name="android.permission.INTERNET" /> | 9 | <uses-permission android:name="android.permission.INTERNET" /> |
10 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | 10 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
11 | <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> | 11 | <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> |
12 | <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> | 12 | <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
13 | <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> | ||
13 | <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> | 14 | <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> |
14 | <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> | 15 | <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> |
15 | <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> | 16 | <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> |
16 | 17 | ||
17 | <application | 18 | <application |
18 | android:name=".LifeLogApplication" | 19 | android:name=".LifeLogApplication" |
19 | android:allowBackup="true" | 20 | android:allowBackup="true" |
20 | android:icon="@mipmap/ic_launcher" | 21 | android:icon="@mipmap/ic_launcher" |
21 | android:label="@string/app_name" | 22 | android:label="@string/app_name" |
22 | android:roundIcon="@mipmap/ic_launcher_round" | 23 | android:roundIcon="@mipmap/ic_launcher_round" |
23 | android:supportsRtl="true" | 24 | android:supportsRtl="true" |
24 | android:largeHeap="true" | 25 | android:largeHeap="true" |
25 | android:theme="@style/AppTheme"> | 26 | android:theme="@style/AppTheme"> |
26 | <meta-data | 27 | <meta-data |
27 | android:name="com.google.android.maps.v2.API_KEY" | 28 | android:name="com.google.android.maps.v2.API_KEY" |
28 | android:value="AIzaSyCDKYsvb0iDXSRm9YnQ8kh5Gzpbpzcpz4s" /> | 29 | android:value="AIzaSyCDKYsvb0iDXSRm9YnQ8kh5Gzpbpzcpz4s" /> |
29 | 30 | ||
30 | <activity | 31 | <activity |
31 | android:name=".activity.WelcomeActivity" | 32 | android:name=".activity.WelcomeActivity" |
32 | android:screenOrientation="portrait" | 33 | android:screenOrientation="portrait" |
33 | android:theme="@style/AppNoActionBar"> | 34 | android:theme="@style/AppNoActionBar"> |
34 | <intent-filter> | 35 | <intent-filter> |
35 | <action android:name="android.intent.action.MAIN" /> | 36 | <action android:name="android.intent.action.MAIN" /> |
36 | 37 | ||
37 | <category android:name="android.intent.category.LAUNCHER" /> | 38 | <category android:name="android.intent.category.LAUNCHER" /> |
38 | </intent-filter> | 39 | </intent-filter> |
39 | </activity> | 40 | </activity> |
40 | <activity | 41 | <activity |
41 | android:name=".activity.LoginActivity" | 42 | android:name=".activity.LoginActivity" |
42 | android:screenOrientation="portrait" | 43 | android:screenOrientation="portrait" |
43 | android:theme="@style/AppNoActionBar"/> | 44 | android:theme="@style/AppNoActionBar"/> |
44 | 45 | ||
45 | <activity | 46 | <activity |
46 | android:name=".activity.PedometerActivity" | 47 | android:name=".activity.PedometerActivity" |
47 | android:screenOrientation="portrait" | 48 | android:screenOrientation="portrait" |
48 | android:theme="@style/AppNoActionBar"/> | 49 | android:theme="@style/AppNoActionBar"/> |
49 | <activity | 50 | <activity |
50 | android:name=".activity.RegisterActivity" | 51 | android:name=".activity.RegisterActivity" |
51 | android:screenOrientation="portrait" | 52 | android:screenOrientation="portrait" |
52 | android:theme="@style/AppNoActionBar"/> | 53 | android:theme="@style/AppNoActionBar"/> |
53 | <activity | 54 | <activity |
54 | android:name=".activity.InputConfirmCodeActivity" | 55 | android:name=".activity.InputConfirmCodeActivity" |
55 | android:screenOrientation="portrait" | 56 | android:screenOrientation="portrait" |
56 | android:theme="@style/AppNoActionBar"/> | 57 | android:theme="@style/AppNoActionBar"/> |
57 | 58 | ||
58 | 59 | ||
59 | <!--<activity--> | 60 | <!--<activity--> |
60 | <!--android:name=".activity.HistoryFragment"--> | 61 | <!--android:name=".activity.HistoryFragment"--> |
61 | <!--android:screenOrientation="portrait"--> | 62 | <!--android:screenOrientation="portrait"--> |
62 | <!--android:theme="@style/AppNoActionBar"></activity>--> | 63 | <!--android:theme="@style/AppNoActionBar"></activity>--> |
63 | 64 | ||
64 | </application> | 65 | </application> |
65 | 66 | ||
66 | </manifest> | 67 | </manifest> |
app/src/main/java/com/dinhcv/lifelogpedometer/activity/PedometerActivity.java
1 | package com.dinhcv.lifelogpedometer.activity; | 1 | package com.dinhcv.lifelogpedometer.activity; |
2 | 2 | ||
3 | import android.Manifest; | 3 | import android.Manifest; |
4 | import android.content.Context; | 4 | import android.content.Context; |
5 | import android.content.Intent; | 5 | import android.content.Intent; |
6 | import android.os.Build; | 6 | import android.os.Build; |
7 | import android.os.Bundle; | 7 | import android.os.Bundle; |
8 | import android.support.design.widget.TabLayout; | 8 | import android.support.design.widget.TabLayout; |
9 | import android.support.v4.app.Fragment; | 9 | import android.support.v4.app.Fragment; |
10 | import android.support.v4.app.FragmentManager; | 10 | import android.support.v4.app.FragmentManager; |
11 | import android.support.v4.app.FragmentPagerAdapter; | 11 | import android.support.v4.app.FragmentPagerAdapter; |
12 | import android.support.v4.content.PermissionChecker; | 12 | import android.support.v4.content.PermissionChecker; |
13 | import android.support.v4.view.ViewPager; | 13 | import android.support.v4.view.ViewPager; |
14 | import android.support.v7.widget.PopupMenu; | 14 | import android.support.v7.widget.PopupMenu; |
15 | import android.support.v7.widget.Toolbar; | 15 | import android.support.v7.widget.Toolbar; |
16 | import android.view.Gravity; | 16 | import android.view.Gravity; |
17 | import android.view.LayoutInflater; | 17 | import android.view.LayoutInflater; |
18 | import android.view.MenuItem; | 18 | import android.view.MenuItem; |
19 | import android.view.View; | 19 | import android.view.View; |
20 | import android.view.Window; | 20 | import android.view.Window; |
21 | import android.view.WindowManager; | 21 | import android.view.WindowManager; |
22 | import android.widget.ImageView; | 22 | import android.widget.ImageView; |
23 | import android.widget.PopupWindow; | 23 | import android.widget.PopupWindow; |
24 | import android.widget.TabHost; | 24 | import android.widget.TabHost; |
25 | import android.widget.TextView; | 25 | import android.widget.TextView; |
26 | import android.widget.Toast; | 26 | import android.widget.Toast; |
27 | 27 | ||
28 | import com.dinhcv.lifelogpedometer.R; | 28 | import com.dinhcv.lifelogpedometer.R; |
29 | import com.dinhcv.lifelogpedometer.model.Shareprefer.Setting; | 29 | import com.dinhcv.lifelogpedometer.model.Shareprefer.Setting; |
30 | import com.dinhcv.lifelogpedometer.portal.APIResponse; | ||
30 | import com.dinhcv.lifelogpedometer.utils.Debug; | 31 | import com.dinhcv.lifelogpedometer.utils.Debug; |
31 | import com.dinhcv.lifelogpedometer.utils.Utils; | 32 | import com.dinhcv.lifelogpedometer.utils.Utils; |
32 | 33 | ||
33 | import java.util.ArrayList; | 34 | import java.util.ArrayList; |
34 | import java.util.List; | 35 | import java.util.List; |
35 | 36 | ||
36 | public class PedometerActivity extends ActivityBase { | 37 | public class PedometerActivity extends ActivityBase { |
37 | private Toolbar mToolBar; | 38 | private Toolbar mToolBar; |
38 | private ViewPager mViewPager; | 39 | private ViewPager mViewPager; |
39 | private int mCurrentTab = 0; | 40 | private int mCurrentTab = 0; |
40 | private TabLayout mTabLayout; | 41 | private TabLayout mTabLayout; |
41 | private TextView tvPageTitle; | 42 | private TextView tvPageTitle; |
42 | private ImageView ivHome; | 43 | private ImageView ivHome; |
43 | private ImageView imvMenu; | 44 | private ImageView imvMenu; |
44 | 45 | ||
45 | private TopFragment mTopFragment; | 46 | private TopFragment mTopFragment; |
46 | private HistoryFragment mHistoryFragment; | 47 | private HistoryFragment mHistoryFragment; |
47 | private SnsFragment mSnsFragment; | 48 | private SnsFragment mSnsFragment; |
48 | 49 | ||
49 | private int[] tabIcons = { | 50 | private int[] tabIcons = { |
50 | R.drawable.today_ic, | 51 | R.drawable.today_ic, |
51 | R.drawable.history_ic, | 52 | R.drawable.history_ic, |
52 | R.drawable.rank_ic, | 53 | R.drawable.rank_ic, |
53 | R.drawable.map_ic, | 54 | R.drawable.map_ic, |
54 | R.drawable.sns_ic | 55 | R.drawable.sns_ic |
55 | }; | 56 | }; |
56 | 57 | ||
57 | public enum TAB { | 58 | public enum TAB { |
58 | DATE_TAB(0), | 59 | DATE_TAB(0), |
59 | HISTORY_TAB(1), | 60 | HISTORY_TAB(1), |
60 | RANK_TAB(2), | 61 | RANK_TAB(2), |
61 | MAP_TAB(3), | 62 | MAP_TAB(3), |
62 | SNS_TAB(4); | 63 | SNS_TAB(4); |
63 | 64 | ||
64 | private final int index; | 65 | private final int index; |
65 | 66 | ||
66 | TAB(int index) { | 67 | TAB(int index) { |
67 | this.index = index; | 68 | this.index = index; |
68 | } | 69 | } |
69 | 70 | ||
70 | public int getValue() { | 71 | public int getValue() { |
71 | return index; | 72 | return index; |
72 | } | 73 | } |
73 | } | 74 | } |
74 | 75 | ||
75 | @Override | 76 | @Override |
76 | protected void onCreate(Bundle savedInstanceState) { | 77 | protected void onCreate(Bundle savedInstanceState) { |
77 | super.onCreate(savedInstanceState); | 78 | super.onCreate(savedInstanceState); |
78 | 79 | ||
79 | setContentView(R.layout.activity_pedometer); | 80 | setContentView(R.layout.activity_pedometer); |
80 | getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); | 81 | getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); |
81 | 82 | ||
82 | initView(); | 83 | initView(); |
83 | 84 | ||
84 | if (android.support.v4.BuildConfig.DEBUG && Build.VERSION.SDK_INT >= 23 && PermissionChecker | 85 | if (android.support.v4.BuildConfig.DEBUG && Build.VERSION.SDK_INT >= 23 && PermissionChecker |
85 | .checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != | 86 | .checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != |
86 | PermissionChecker.PERMISSION_GRANTED) { | 87 | PermissionChecker.PERMISSION_GRANTED) { |
87 | requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0); | 88 | requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0); |
88 | } | 89 | } |
89 | } | 90 | } |
90 | 91 | ||
91 | private void initView() { | 92 | private void initView() { |
92 | 93 | ||
93 | tvPageTitle = (TextView) findViewById(R.id.tv_pageTitle); | 94 | tvPageTitle = (TextView) findViewById(R.id.tv_pageTitle); |
94 | ivHome = (ImageView) findViewById(R.id.iv_home); | 95 | ivHome = (ImageView) findViewById(R.id.iv_home); |
95 | imvMenu = (ImageView) findViewById(R.id.imv_menu); | 96 | imvMenu = (ImageView) findViewById(R.id.imv_menu); |
96 | 97 | ||
97 | mViewPager = (ViewPager) findViewById(R.id.viewpager); | 98 | mViewPager = (ViewPager) findViewById(R.id.viewpager); |
98 | mViewPager.setOffscreenPageLimit(5); | 99 | mViewPager.setOffscreenPageLimit(5); |
99 | setupViewPager(mViewPager); | 100 | setupViewPager(mViewPager); |
100 | mTabLayout = (TabLayout) findViewById(R.id.tabs); | 101 | mTabLayout = (TabLayout) findViewById(R.id.tabs); |
101 | mTabLayout.setupWithViewPager(mViewPager); | 102 | mTabLayout.setupWithViewPager(mViewPager); |
102 | //Set tab selected | 103 | //Set tab selected |
103 | TabLayout.Tab tab = mTabLayout.getTabAt(mCurrentTab); | 104 | TabLayout.Tab tab = mTabLayout.getTabAt(mCurrentTab); |
104 | if (tab != null) { | 105 | if (tab != null) { |
105 | tab.select(); | 106 | tab.select(); |
106 | } | 107 | } |
107 | //mTabLayout.addTab(); | 108 | //mTabLayout.addTab(); |
108 | View view1 = getLayoutInflater().inflate(R.layout.customtab, null); | 109 | View view1 = getLayoutInflater().inflate(R.layout.customtab, null); |
109 | view1.findViewById(R.id.icon).setBackgroundResource(R.drawable.today_ic); | 110 | view1.findViewById(R.id.icon).setBackgroundResource(R.drawable.today_ic); |
110 | //mTabLayout.addTab(mTabLayout.newTab().setCustomView(view1)); | 111 | //mTabLayout.addTab(mTabLayout.newTab().setCustomView(view1)); |
111 | 112 | ||
112 | 113 | ||
113 | View view2 = getLayoutInflater().inflate(R.layout.customtab, null); | 114 | View view2 = getLayoutInflater().inflate(R.layout.customtab, null); |
114 | view2.findViewById(R.id.icon).setBackgroundResource(R.drawable.history_ic); | 115 | view2.findViewById(R.id.icon).setBackgroundResource(R.drawable.history_ic); |
115 | //mTabLayout.addTab(mTabLayout.newTab().setCustomView(view2)); | 116 | //mTabLayout.addTab(mTabLayout.newTab().setCustomView(view2)); |
116 | 117 | ||
117 | 118 | ||
118 | View view3 = getLayoutInflater().inflate(R.layout.customtab, null); | 119 | View view3 = getLayoutInflater().inflate(R.layout.customtab, null); |
119 | view3.findViewById(R.id.icon).setBackgroundResource(R.drawable.rank_ic); | 120 | view3.findViewById(R.id.icon).setBackgroundResource(R.drawable.rank_ic); |
120 | //mTabLayout.addTab(mTabLayout.newTab().setCustomView(view3)); | 121 | //mTabLayout.addTab(mTabLayout.newTab().setCustomView(view3)); |
121 | 122 | ||
122 | 123 | ||
123 | View view4 = getLayoutInflater().inflate(R.layout.customtab, null); | 124 | View view4 = getLayoutInflater().inflate(R.layout.customtab, null); |
124 | view4.findViewById(R.id.icon).setBackgroundResource(R.drawable.map_ic); | 125 | view4.findViewById(R.id.icon).setBackgroundResource(R.drawable.map_ic); |
125 | //mTabLayout.addTab(mTabLayout.newTab().setCustomView(view4)); | 126 | //mTabLayout.addTab(mTabLayout.newTab().setCustomView(view4)); |
126 | 127 | ||
127 | 128 | ||
128 | View view5 = getLayoutInflater().inflate(R.layout.customtab, null); | 129 | View view5 = getLayoutInflater().inflate(R.layout.customtab, null); |
129 | view5.findViewById(R.id.icon).setBackgroundResource(R.drawable.sns_ic); | 130 | view5.findViewById(R.id.icon).setBackgroundResource(R.drawable.sns_ic); |
130 | //mTabLayout.addTab(mTabLayout.newTab().setCustomView(view5)); | 131 | //mTabLayout.addTab(mTabLayout.newTab().setCustomView(view5)); |
131 | 132 | ||
132 | 133 | ||
133 | mTabLayout.getTabAt(0).setCustomView(view1); | 134 | mTabLayout.getTabAt(0).setCustomView(view1); |
134 | mTabLayout.getTabAt(1).setCustomView(view2); | 135 | mTabLayout.getTabAt(1).setCustomView(view2); |
135 | mTabLayout.getTabAt(2).setCustomView(view3); | 136 | mTabLayout.getTabAt(2).setCustomView(view3); |
136 | mTabLayout.getTabAt(3).setCustomView(view4); | 137 | mTabLayout.getTabAt(3).setCustomView(view4); |
137 | mTabLayout.getTabAt(4).setCustomView(view5); | 138 | mTabLayout.getTabAt(4).setCustomView(view5); |
138 | 139 | ||
139 | changeColorStatusBar(); | 140 | changeColorStatusBar(); |
140 | //setupTabIcons(); | 141 | //setupTabIcons(); |
141 | 142 | ||
142 | //SonLT Add | 143 | //SonLT Add |
143 | ivHome.setOnClickListener(new View.OnClickListener() { | 144 | ivHome.setOnClickListener(new View.OnClickListener() { |
144 | @Override | 145 | @Override |
145 | public void onClick(View v) { | 146 | public void onClick(View v) { |
146 | switch (mCurrentTab){ | 147 | switch (mCurrentTab){ |
147 | case 0: mTopFragment.clickBackToHome(); break; | 148 | case 0: mTopFragment.clickBackToHome(); break; |
148 | case 1: mHistoryFragment.clickBackToHome(); break; | 149 | case 1: mHistoryFragment.clickBackToHome(); break; |
149 | case 4: mSnsFragment.handleToolbarClick(0); break; | 150 | case 4: mSnsFragment.handleToolbarClick(0); break; |
150 | default: break; | 151 | default: break; |
151 | } | 152 | } |
152 | } | 153 | } |
153 | }); | 154 | }); |
154 | 155 | ||
155 | imvMenu.setOnClickListener(new View.OnClickListener() { | 156 | imvMenu.setOnClickListener(new View.OnClickListener() { |
156 | @Override | 157 | @Override |
157 | public void onClick(View v) { | 158 | public void onClick(View v) { |
158 | //Creating the instance of PopupMenu | 159 | //Creating the instance of PopupMenu |
159 | PopupMenu popup = new PopupMenu(PedometerActivity.this, imvMenu); | 160 | PopupMenu popup = new PopupMenu(PedometerActivity.this, imvMenu); |
160 | //Inflating the Popup using xml file | 161 | //Inflating the Popup using xml file |
161 | popup.getMenuInflater().inflate(R.menu.main, popup.getMenu()); | 162 | popup.getMenuInflater().inflate(R.menu.main, popup.getMenu()); |
162 | 163 | ||
163 | //registering popup with OnMenuItemClickListener | 164 | //registering popup with OnMenuItemClickListener |
164 | popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { | 165 | popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { |
165 | public boolean onMenuItemClick(MenuItem item) { | 166 | public boolean onMenuItemClick(MenuItem item) { |
166 | switch (item.getItemId()){ | 167 | switch (item.getItemId()){ |
167 | case R.id.action_setting: | 168 | case R.id.action_setting: |
168 | Toast.makeText( | 169 | Toast.makeText( |
169 | PedometerActivity.this, | 170 | PedometerActivity.this, |
170 | "Have not spec : " + item.getTitle(), | 171 | "Have not spec : " + item.getTitle(), |
171 | Toast.LENGTH_SHORT | 172 | Toast.LENGTH_SHORT |
172 | ).show(); | 173 | ).show(); |
173 | break; | 174 | break; |
174 | case R.id.action_profile: | 175 | case R.id.action_profile: |
175 | Toast.makeText( | 176 | Toast.makeText( |
176 | PedometerActivity.this, | 177 | PedometerActivity.this, |
177 | "Have not spec : " + item.getTitle(), | 178 | "Have not spec : " + item.getTitle(), |
178 | Toast.LENGTH_SHORT | 179 | Toast.LENGTH_SHORT |
179 | ).show(); | 180 | ).show(); |
180 | break; | 181 | break; |
181 | case R.id.action_logout: | 182 | case R.id.action_logout: |
182 | logout(); | 183 | logout(); |
183 | break; | 184 | break; |
184 | default: | 185 | default: |
185 | Debug.warn("Not run here"); | 186 | Debug.warn("Not run here"); |
186 | break; | 187 | break; |
187 | } | 188 | } |
188 | 189 | ||
189 | return true; | 190 | return true; |
190 | } | 191 | } |
191 | }); | 192 | }); |
192 | 193 | ||
193 | popup.show(); //showing popup menu | 194 | popup.show(); //showing popup menu |
194 | } | 195 | } |
195 | }); //closing the setOnClickListener method | 196 | }); //closing the setOnClickListener method |
196 | } | 197 | } |
197 | 198 | ||
198 | public TabHost.TabSpec setIndicator(Context ctx, TabHost.TabSpec spec, int viewId, int resId, String name) { | 199 | public TabHost.TabSpec setIndicator(Context ctx, TabHost.TabSpec spec, int viewId, int resId, String name) { |
199 | View v = LayoutInflater.from(ctx).inflate(R.layout.customtab, null); | 200 | View v = LayoutInflater.from(ctx).inflate(R.layout.customtab, null); |
200 | ImageView imgTab = (ImageView) v.findViewById(viewId); | 201 | ImageView imgTab = (ImageView) v.findViewById(viewId); |
201 | imgTab.setImageDrawable(getResources().getDrawable(resId)); | 202 | imgTab.setImageDrawable(getResources().getDrawable(resId)); |
202 | 203 | ||
203 | return spec.setIndicator(v); | 204 | return spec.setIndicator(v); |
204 | } | 205 | } |
205 | 206 | ||
206 | private void setupTabIcons() { | 207 | private void setupTabIcons() { |
207 | mTabLayout.getTabAt(0).setCustomView(tabIcons[0]); | 208 | mTabLayout.getTabAt(0).setCustomView(tabIcons[0]); |
208 | mTabLayout.getTabAt(1).setIcon(tabIcons[1]); | 209 | mTabLayout.getTabAt(1).setIcon(tabIcons[1]); |
209 | mTabLayout.getTabAt(2).setIcon(tabIcons[2]); | 210 | mTabLayout.getTabAt(2).setIcon(tabIcons[2]); |
210 | mTabLayout.getTabAt(3).setIcon(tabIcons[3]); | 211 | mTabLayout.getTabAt(3).setIcon(tabIcons[3]); |
211 | mTabLayout.getTabAt(4).setIcon(tabIcons[4]); | 212 | mTabLayout.getTabAt(4).setIcon(tabIcons[4]); |
212 | } | 213 | } |
213 | 214 | ||
214 | 215 | ||
215 | private void setTabView() { | 216 | private void setTabView() { |
216 | 217 | ||
217 | for (int i = 0; i < mTabLayout.getTabCount(); i++) { | 218 | for (int i = 0; i < mTabLayout.getTabCount(); i++) { |
218 | TextView tv = (TextView) mTabLayout.getChildAt(0).findViewById(android.R.id.title); | 219 | TextView tv = (TextView) mTabLayout.getChildAt(0).findViewById(android.R.id.title); |
219 | //tv.setTextColor(Color.BLACK); | 220 | //tv.setTextColor(Color.BLACK); |
220 | tv.setPadding(10, 10, 10, 15); | 221 | tv.setPadding(10, 10, 10, 15); |
221 | tv.setTextSize((float) 20.0); | 222 | tv.setTextSize((float) 20.0); |
222 | //tv.setTypeface(null, Typeface.BOLD); | 223 | //tv.setTypeface(null, Typeface.BOLD); |
223 | //tv.setBackgroundResource(R.drawable.icon); | 224 | //tv.setBackgroundResource(R.drawable.icon); |
224 | tv.setHeight(100); | 225 | tv.setHeight(100); |
225 | tv.setWidth(100); | 226 | tv.setWidth(100); |
226 | } | 227 | } |
227 | 228 | ||
228 | } | 229 | } |
229 | 230 | ||
230 | private void changeColorStatusBar() { | 231 | private void changeColorStatusBar() { |
231 | if (android.os.Build.VERSION.SDK_INT >= 21) { | 232 | if (android.os.Build.VERSION.SDK_INT >= 21) { |
232 | Window window = this.getWindow(); | 233 | Window window = this.getWindow(); |
233 | window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); | 234 | window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); |
234 | window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); | 235 | window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); |
235 | // window.setStatusBarColor(Utils.getColorWrapper(this, R.color.white)); | 236 | // window.setStatusBarColor(Utils.getColorWrapper(this, R.color.white)); |
236 | } | 237 | } |
237 | } | 238 | } |
238 | 239 | ||
239 | // @Override | 240 | // @Override |
240 | // public boolean onCreateOptionsMenu(Menu menu) { | 241 | // public boolean onCreateOptionsMenu(Menu menu) { |
241 | // getMenuInflater().inflate(R.menu.setting_menu, menu); | 242 | // getMenuInflater().inflate(R.menu.setting_menu, menu); |
242 | // return true; | 243 | // return true; |
243 | // } | 244 | // } |
244 | 245 | ||
245 | @Override | 246 | @Override |
246 | public boolean onOptionsItemSelected(MenuItem item) { | 247 | public boolean onOptionsItemSelected(MenuItem item) { |
247 | return super.onOptionsItemSelected(item); | 248 | return super.onOptionsItemSelected(item); |
248 | } | 249 | } |
249 | 250 | ||
250 | /** | 251 | /** |
251 | * Setup pager | 252 | * Setup pager |
252 | * | 253 | * |
253 | * @param viewPager: view pager | 254 | * @param viewPager: view pager |
254 | */ | 255 | */ |
255 | private void setupViewPager(ViewPager viewPager) { | 256 | private void setupViewPager(ViewPager viewPager) { |
256 | ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); | 257 | ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); |
257 | mTopFragment = new TopFragment(); | 258 | mTopFragment = new TopFragment(); |
258 | adapter.addFragment(mTopFragment, getString(R.string.date)); | 259 | adapter.addFragment(mTopFragment, getString(R.string.date)); |
259 | mHistoryFragment = new HistoryFragment(); | 260 | mHistoryFragment = new HistoryFragment(); |
260 | adapter.addFragment(mHistoryFragment, getString(R.string.history)); | 261 | adapter.addFragment(mHistoryFragment, getString(R.string.history)); |
261 | adapter.addFragment(new RankFragment(), getString(R.string.ranking)); | 262 | adapter.addFragment(new RankFragment(), getString(R.string.ranking)); |
262 | adapter.addFragment(new MapFragment(), getString(R.string.map)); | 263 | adapter.addFragment(new MapFragment(), getString(R.string.map)); |
263 | mSnsFragment = new SnsFragment(); | 264 | mSnsFragment = new SnsFragment(); |
264 | adapter.addFragment(mSnsFragment, getString(R.string.sns)); | 265 | adapter.addFragment(mSnsFragment, getString(R.string.sns)); |
265 | viewPager.setAdapter(adapter); | 266 | viewPager.setAdapter(adapter); |
266 | } | 267 | } |
267 | 268 | ||
268 | /** | 269 | /** |
269 | * Class FragmentPagerAdapter | 270 | * Class FragmentPagerAdapter |
270 | */ | 271 | */ |
271 | class ViewPagerAdapter extends FragmentPagerAdapter { | 272 | class ViewPagerAdapter extends FragmentPagerAdapter { |
272 | private final List<Fragment> mFragmentList = new ArrayList<>(); | 273 | private final List<Fragment> mFragmentList = new ArrayList<>(); |
273 | private final List<String> mFragmentTitleList = new ArrayList<>(); | 274 | private final List<String> mFragmentTitleList = new ArrayList<>(); |
274 | 275 | ||
275 | public ViewPagerAdapter(FragmentManager manager) { | 276 | public ViewPagerAdapter(FragmentManager manager) { |
276 | super(manager); | 277 | super(manager); |
277 | } | 278 | } |
278 | 279 | ||
279 | @Override | 280 | @Override |
280 | public Fragment getItem(int position) { | 281 | public Fragment getItem(int position) { |
281 | return mFragmentList.get(position); | 282 | return mFragmentList.get(position); |
282 | } | 283 | } |
283 | 284 | ||
284 | @Override | 285 | @Override |
285 | public int getCount() { | 286 | public int getCount() { |
286 | return mFragmentList.size(); | 287 | return mFragmentList.size(); |
287 | } | 288 | } |
288 | 289 | ||
289 | private void addFragment(Fragment fragment, String title) { | 290 | private void addFragment(Fragment fragment, String title) { |
290 | mFragmentList.add(fragment); | 291 | mFragmentList.add(fragment); |
291 | mFragmentTitleList.add(title); | 292 | mFragmentTitleList.add(title); |
292 | } | 293 | } |
293 | 294 | ||
294 | @Override | 295 | @Override |
295 | public CharSequence getPageTitle(int position) { | 296 | public CharSequence getPageTitle(int position) { |
296 | //return mFragmentTitleList.get(position); | 297 | //return mFragmentTitleList.get(position); |
297 | return null; | 298 | return null; |
298 | } | 299 | } |
299 | } | 300 | } |
300 | 301 | ||
301 | @Override | 302 | @Override |
302 | protected void onResume() { | 303 | protected void onResume() { |
303 | super.onResume(); | 304 | super.onResume(); |
304 | mViewPager.addOnPageChangeListener(mPageChangeListener); | 305 | mViewPager.addOnPageChangeListener(mPageChangeListener); |
305 | } | 306 | } |
306 | 307 | ||
307 | @Override | 308 | @Override |
308 | protected void onPause() { | 309 | protected void onPause() { |
309 | super.onPause(); | 310 | super.onPause(); |
310 | mViewPager.removeOnPageChangeListener(mPageChangeListener); | 311 | mViewPager.removeOnPageChangeListener(mPageChangeListener); |
311 | } | 312 | } |
312 | 313 | ||
313 | private int mLastTab = 0; | 314 | private int mLastTab = 0; |
314 | private final ViewPager.OnPageChangeListener mPageChangeListener = new ViewPager | 315 | private final ViewPager.OnPageChangeListener mPageChangeListener = new ViewPager |
315 | .OnPageChangeListener | 316 | .OnPageChangeListener |
316 | () { | 317 | () { |
317 | @Override | 318 | @Override |
318 | public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { | 319 | public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { |
319 | //Nothing here | 320 | //Nothing here |
320 | } | 321 | } |
321 | 322 | ||
322 | @Override | 323 | @Override |
323 | public void onPageSelected(int position) { | 324 | public void onPageSelected(int position) { |
324 | ViewPagerAdapter adapter = (ViewPagerAdapter) mViewPager.getAdapter(); | 325 | ViewPagerAdapter adapter = (ViewPagerAdapter) mViewPager.getAdapter(); |
325 | SettingFragmentPresenter presenter = (SettingFragmentPresenter) adapter.getItem | 326 | SettingFragmentPresenter presenter = (SettingFragmentPresenter) adapter.getItem |
326 | (position); | 327 | (position); |
327 | 328 | ||
328 | switch (position) { | 329 | switch (position) { |
329 | case 4: | 330 | case 4: |
330 | tvPageTitle.setText(getString(R.string.sns_fragment)); | 331 | tvPageTitle.setText(getString(R.string.sns_fragment)); |
331 | ivHome.setVisibility(View.VISIBLE); | 332 | ivHome.setVisibility(View.VISIBLE); |
332 | break; | 333 | break; |
333 | case 1: | 334 | case 1: |
334 | tvPageTitle.setText(getString(R.string.today)); | 335 | tvPageTitle.setText(getString(R.string.today)); |
335 | ivHome.setVisibility(View.VISIBLE); | 336 | ivHome.setVisibility(View.VISIBLE); |
336 | break; | 337 | break; |
337 | 338 | ||
338 | case 0: | 339 | case 0: |
339 | tvPageTitle.setText(getString(R.string.home)); | 340 | tvPageTitle.setText(getString(R.string.home)); |
340 | ivHome.setVisibility(View.GONE); | 341 | ivHome.setVisibility(View.GONE); |
341 | break; | 342 | break; |
342 | 343 | ||
343 | default: | 344 | default: |
344 | tvPageTitle.setText(getString(R.string.home)); | 345 | tvPageTitle.setText(getString(R.string.home)); |
345 | ivHome.setVisibility(View.GONE); | 346 | ivHome.setVisibility(View.GONE); |
346 | break; | 347 | break; |
347 | } | 348 | } |
348 | // if (position == 1){ | 349 | // if (position == 1){ |
349 | // tvPageTitle.setText(getString(R.string.today)); | 350 | // tvPageTitle.setText(getString(R.string.today)); |
350 | // ivHome.setVisibility(View.VISIBLE); | 351 | // ivHome.setVisibility(View.VISIBLE); |
351 | // }else { | 352 | // }else { |
352 | // tvPageTitle.setText(getString(R.string.home)); | 353 | // tvPageTitle.setText(getString(R.string.home)); |
353 | // ivHome.setVisibility(View.GONE); | 354 | // ivHome.setVisibility(View.GONE); |
354 | // } | 355 | // } |
355 | 356 | ||
356 | presenter.onInvalidate(false); | 357 | presenter.onInvalidate(false); |
357 | mLastTab = position; | 358 | mLastTab = position; |
358 | mCurrentTab = position; | 359 | mCurrentTab = position; |
359 | } | 360 | } |
360 | 361 | ||
361 | @Override | 362 | @Override |
362 | public void onPageScrollStateChanged(int state) { | 363 | public void onPageScrollStateChanged(int state) { |
363 | //Nothing here | 364 | //Nothing here |
364 | if (state == ViewPager.SCROLL_STATE_SETTLING) { | 365 | if (state == ViewPager.SCROLL_STATE_SETTLING) { |
365 | if (mLastTab >= 0) { | 366 | if (mLastTab >= 0) { |
366 | ViewPagerAdapter adapter = (ViewPagerAdapter) mViewPager.getAdapter(); | 367 | ViewPagerAdapter adapter = (ViewPagerAdapter) mViewPager.getAdapter(); |
367 | SettingFragmentPresenter presenter = (SettingFragmentPresenter) adapter | 368 | SettingFragmentPresenter presenter = (SettingFragmentPresenter) adapter |
368 | .getItem(mLastTab); | 369 | .getItem(mLastTab); |
369 | 370 | ||
370 | Debug.normal("Save data in tab:" + mLastTab); | 371 | Debug.normal("Save data in tab:" + mLastTab); |
371 | presenter.onSaveData(); | 372 | presenter.onSaveData(); |
372 | } | 373 | } |
373 | } | 374 | } |
374 | } | 375 | } |
375 | }; | 376 | }; |
376 | 377 | ||
377 | public void setVisibleIconHome(boolean isVisible){ | 378 | public void setVisibleIconHome(boolean isVisible){ |
378 | if (isVisible) { | 379 | if (isVisible) { |
379 | ivHome.setVisibility(View.VISIBLE); | 380 | ivHome.setVisibility(View.VISIBLE); |
380 | }else { | 381 | }else { |
381 | ivHome.setVisibility(View.GONE); | 382 | ivHome.setVisibility(View.GONE); |
382 | } | 383 | } |
383 | 384 | ||
384 | setTitleTop(isVisible); | 385 | setTitleTop(isVisible); |
385 | } | 386 | } |
386 | 387 | ||
387 | public void setTitleTop(boolean isVisible){ | 388 | public void setTitleTop(boolean isVisible){ |
388 | if (isVisible) { | 389 | if (isVisible) { |
389 | tvPageTitle.setText(getString(R.string.today)); | 390 | tvPageTitle.setText(getString(R.string.today)); |
390 | }else { | 391 | }else { |
391 | tvPageTitle.setText(getString(R.string.home)); | 392 | tvPageTitle.setText(getString(R.string.home)); |
392 | } | 393 | } |
393 | } | 394 | } |
394 | 395 | ||
395 | 396 | ||
396 | 397 | ||
397 | private void logout(){ | 398 | private void logout(){ |
398 | // clear data | 399 | // clear data |
399 | Setting.clearUserIdSharepre(PedometerActivity.this); | 400 | Setting.clearUserIdSharepre(PedometerActivity.this); |
401 | APIResponse.getInstance().setToken(null); | ||
400 | // go to login | 402 | // go to login |
401 | Intent intent = new Intent(PedometerActivity.this, LoginActivity.class); | 403 | Intent intent = new Intent(PedometerActivity.this, LoginActivity.class); |
402 | intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); | 404 | intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); |
403 | intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); | 405 | intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); |
404 | startActivity(intent); | 406 | startActivity(intent); |
405 | } | 407 | } |
406 | 408 | ||
407 | } | 409 | } |
408 | 410 |
app/src/main/java/com/dinhcv/lifelogpedometer/activity/RegisterActivity.java
1 | package com.dinhcv.lifelogpedometer.activity; | 1 | package com.dinhcv.lifelogpedometer.activity; |
2 | 2 | ||
3 | import android.app.AlertDialog; | 3 | import android.app.AlertDialog; |
4 | import android.app.DatePickerDialog; | 4 | import android.app.DatePickerDialog; |
5 | import android.app.ProgressDialog; | 5 | import android.app.ProgressDialog; |
6 | import android.content.DialogInterface; | 6 | import android.content.DialogInterface; |
7 | import android.content.Intent; | 7 | import android.content.Intent; |
8 | import android.graphics.Bitmap; | 8 | import android.graphics.Bitmap; |
9 | import android.graphics.BitmapFactory; | 9 | import android.graphics.BitmapFactory; |
10 | import android.net.Uri; | 10 | import android.net.Uri; |
11 | import android.os.AsyncTask; | 11 | import android.os.AsyncTask; |
12 | import android.os.Bundle; | 12 | import android.os.Bundle; |
13 | import android.view.View; | 13 | import android.view.View; |
14 | import android.view.WindowManager; | 14 | import android.view.WindowManager; |
15 | import android.widget.DatePicker; | 15 | import android.widget.DatePicker; |
16 | import android.widget.EditText; | 16 | import android.widget.EditText; |
17 | import android.widget.LinearLayout; | 17 | import android.widget.LinearLayout; |
18 | import android.widget.TextView; | 18 | import android.widget.TextView; |
19 | import android.widget.Toast; | 19 | import android.widget.Toast; |
20 | 20 | ||
21 | import com.dinhcv.lifelogpedometer.LifeLogApplication; | 21 | import com.dinhcv.lifelogpedometer.LifeLogApplication; |
22 | import com.dinhcv.lifelogpedometer.R; | 22 | import com.dinhcv.lifelogpedometer.R; |
23 | import com.dinhcv.lifelogpedometer.customview.SimpleSelectBoxDialogBuilder; | 23 | import com.dinhcv.lifelogpedometer.customview.SimpleSelectBoxDialogBuilder; |
24 | import com.dinhcv.lifelogpedometer.interfaces.LLAPIManagerListener; | 24 | import com.dinhcv.lifelogpedometer.interfaces.LLAPIManagerListener; |
25 | import com.dinhcv.lifelogpedometer.interfaces.OnSelectResultListener; | 25 | import com.dinhcv.lifelogpedometer.interfaces.OnSelectResultListener; |
26 | import com.dinhcv.lifelogpedometer.model.Shareprefer.Setting; | 26 | import com.dinhcv.lifelogpedometer.model.Shareprefer.Setting; |
27 | import com.dinhcv.lifelogpedometer.model.structure.RegisterInfo; | 27 | import com.dinhcv.lifelogpedometer.model.structure.RegisterInfo; |
28 | import com.dinhcv.lifelogpedometer.model.structure.SelectItemInfo; | 28 | import com.dinhcv.lifelogpedometer.model.structure.SelectItemInfo; |
29 | import com.dinhcv.lifelogpedometer.portal.ApiServices; | 29 | import com.dinhcv.lifelogpedometer.portal.ApiServices; |
30 | import com.dinhcv.lifelogpedometer.portal.LLAPIManager; | 30 | import com.dinhcv.lifelogpedometer.portal.LLAPIManager; |
31 | import com.dinhcv.lifelogpedometer.utils.Debug; | 31 | import com.dinhcv.lifelogpedometer.utils.Debug; |
32 | import com.dinhcv.lifelogpedometer.utils.Utils; | 32 | import com.dinhcv.lifelogpedometer.utils.Utils; |
33 | 33 | ||
34 | import org.json.JSONArray; | 34 | import org.json.JSONArray; |
35 | import org.json.JSONObject; | 35 | import org.json.JSONObject; |
36 | 36 | ||
37 | import java.io.FileNotFoundException; | 37 | import java.io.FileNotFoundException; |
38 | import java.io.InputStream; | 38 | import java.io.InputStream; |
39 | import java.util.Calendar; | 39 | import java.util.Calendar; |
40 | import java.util.Date; | 40 | import java.util.Date; |
41 | import java.util.List; | 41 | import java.util.List; |
42 | 42 | ||
43 | import butterknife.BindView; | 43 | import butterknife.BindView; |
44 | import butterknife.ButterKnife; | 44 | import butterknife.ButterKnife; |
45 | import butterknife.OnClick; | 45 | import butterknife.OnClick; |
46 | import de.hdodenhof.circleimageview.CircleImageView; | 46 | import de.hdodenhof.circleimageview.CircleImageView; |
47 | 47 | ||
48 | public class RegisterActivity extends ActivityBase { | 48 | public class RegisterActivity extends ActivityBase { |
49 | 49 | ||
50 | @BindView(R.id.edt_user) | 50 | @BindView(R.id.edt_user) |
51 | EditText edtUsername; | 51 | EditText edtUsername; |
52 | @BindView(R.id.edt_name) | 52 | @BindView(R.id.edt_name) |
53 | EditText edtName; | 53 | EditText edtName; |
54 | @BindView(R.id.edt_nickName) | 54 | @BindView(R.id.edt_nickName) |
55 | EditText edtNickName; | 55 | EditText edtNickName; |
56 | @BindView(R.id.edt_email) | 56 | @BindView(R.id.edt_email) |
57 | EditText edtEmail; | 57 | EditText edtEmail; |
58 | @BindView(R.id.edt_password) | 58 | @BindView(R.id.edt_password) |
59 | EditText edtPassword; | 59 | EditText edtPassword; |
60 | @BindView(R.id.edt_confirmPass) | 60 | @BindView(R.id.edt_confirmPass) |
61 | EditText edtConfirmPass; | 61 | EditText edtConfirmPass; |
62 | @BindView(R.id.tv_sex) | 62 | @BindView(R.id.tv_sex) |
63 | TextView tvSex; | 63 | TextView tvSex; |
64 | @BindView(R.id.tv_birthday) | 64 | @BindView(R.id.tv_birthday) |
65 | TextView tvBirthday; | 65 | TextView tvBirthday; |
66 | @BindView(R.id.edt_height) | 66 | @BindView(R.id.edt_height) |
67 | EditText edtHeight; | 67 | EditText edtHeight; |
68 | @BindView(R.id.edt_weight) | 68 | @BindView(R.id.edt_weight) |
69 | EditText edtWeight; | 69 | EditText edtWeight; |
70 | @BindView(R.id.edt_bodyFat) | 70 | @BindView(R.id.edt_bodyFat) |
71 | EditText edtBodyFat; | 71 | EditText edtBodyFat; |
72 | @BindView(R.id.tv_address) | 72 | @BindView(R.id.tv_address) |
73 | TextView tvAddress; | 73 | TextView tvAddress; |
74 | @BindView(R.id.edt_comment) | 74 | @BindView(R.id.edt_comment) |
75 | EditText edtComment; | 75 | EditText edtComment; |
76 | 76 | ||
77 | @BindView(R.id.ll_low) | 77 | @BindView(R.id.ll_low) |
78 | LinearLayout llLow; | 78 | LinearLayout llLow; |
79 | @BindView(R.id.tv_low) | 79 | @BindView(R.id.tv_low) |
80 | TextView tvLow; | 80 | TextView tvLow; |
81 | @BindView(R.id.ll_mid) | 81 | @BindView(R.id.ll_mid) |
82 | LinearLayout llMid; | 82 | LinearLayout llMid; |
83 | @BindView(R.id.tv_mid) | 83 | @BindView(R.id.tv_mid) |
84 | TextView tvMid; | 84 | TextView tvMid; |
85 | @BindView(R.id.ll_hight) | 85 | @BindView(R.id.ll_hight) |
86 | LinearLayout llHight; | 86 | LinearLayout llHight; |
87 | @BindView(R.id.tv_hight) | 87 | @BindView(R.id.tv_hight) |
88 | TextView tvHight; | 88 | TextView tvHight; |
89 | @BindView(R.id.profile_image) | 89 | @BindView(R.id.profile_image) |
90 | CircleImageView profileImage; | 90 | CircleImageView profileImage; |
91 | 91 | ||
92 | private List<SelectItemInfo> sexList; | 92 | private List<SelectItemInfo> sexList; |
93 | private List<SelectItemInfo> provinceList; | 93 | private List<SelectItemInfo> provinceList; |
94 | private LifeLogApplication mLifeLogApplication; | 94 | private LifeLogApplication mLifeLogApplication; |
95 | private SelectItemInfo sexInfo; | 95 | private SelectItemInfo sexInfo; |
96 | private SelectItemInfo provinceInfo; | 96 | private SelectItemInfo provinceInfo; |
97 | 97 | ||
98 | private Calendar mCalendar; | 98 | private Calendar mCalendar; |
99 | private int mDay; | 99 | private int mDay; |
100 | private int mMonth; | 100 | private int mMonth; |
101 | private int mYear; | 101 | private int mYear; |
102 | private Date mBirthDay; | 102 | private Date mBirthDay; |
103 | 103 | ||
104 | private int level = 0; | 104 | private int level = 0; |
105 | private static final int RESULT_LOAD_IMG = 99; | 105 | private static final int RESULT_LOAD_IMG = 99; |
106 | private RegisterInfo mRegisterInfo; | 106 | private RegisterInfo mRegisterInfo; |
107 | private String profileImagePath; | 107 | private String profileImagePath; |
108 | private ProgressDialog progressDialog; | 108 | private ProgressDialog progressDialog; |
109 | 109 | ||
110 | @Override | 110 | @Override |
111 | protected void onCreate(Bundle savedInstanceState) { | 111 | protected void onCreate(Bundle savedInstanceState) { |
112 | super.onCreate(savedInstanceState); | 112 | super.onCreate(savedInstanceState); |
113 | setContentView(R.layout.activity_register); | 113 | setContentView(R.layout.activity_register); |
114 | getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); | 114 | getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); |
115 | 115 | ||
116 | ButterKnife.bind(this); | 116 | ButterKnife.bind(this); |
117 | mLifeLogApplication = (LifeLogApplication) getApplication(); | 117 | mLifeLogApplication = (LifeLogApplication) getApplication(); |
118 | 118 | ||
119 | initData(); | 119 | initData(); |
120 | 120 | ||
121 | initView(); | 121 | initView(); |
122 | 122 | ||
123 | } | 123 | } |
124 | 124 | ||
125 | private void initData() { | 125 | private void initData() { |
126 | sexList = mLifeLogApplication.getSexList(); | 126 | sexList = mLifeLogApplication.getSexList(); |
127 | provinceList = mLifeLogApplication.getProvinceList(); | 127 | provinceList = mLifeLogApplication.getProvinceList(); |
128 | 128 | ||
129 | mCalendar = Calendar.getInstance(); | 129 | mCalendar = Calendar.getInstance(); |
130 | mDay = mCalendar.get(Calendar.DAY_OF_MONTH); | 130 | mDay = mCalendar.get(Calendar.DAY_OF_MONTH); |
131 | mMonth = mCalendar.get(Calendar.MONTH); | 131 | mMonth = mCalendar.get(Calendar.MONTH); |
132 | mYear = mCalendar.get(Calendar.YEAR); | 132 | mYear = mCalendar.get(Calendar.YEAR); |
133 | } | 133 | } |
134 | 134 | ||
135 | 135 | ||
136 | private void initView() { | 136 | private void initView() { |
137 | 137 | ||
138 | 138 | ||
139 | } | 139 | } |
140 | 140 | ||
141 | private boolean checkData() { | 141 | private boolean checkData() { |
142 | String userName = edtUsername.getText().toString(); | 142 | String userName = edtUsername.getText().toString(); |
143 | String name = edtName.getText().toString(); | 143 | String name = edtName.getText().toString(); |
144 | String nickName = edtNickName.getText().toString(); | 144 | String nickName = edtNickName.getText().toString(); |
145 | String email = edtEmail.getText().toString(); | 145 | String email = edtEmail.getText().toString(); |
146 | String pass = edtPassword.getText().toString(); | 146 | String pass = edtPassword.getText().toString(); |
147 | String confirmPass = edtConfirmPass.getText().toString(); | 147 | String confirmPass = edtConfirmPass.getText().toString(); |
148 | //sexInfo | 148 | //sexInfo |
149 | //birthday | 149 | //birthday |
150 | String height = edtHeight.getText().toString(); | 150 | String height = edtHeight.getText().toString(); |
151 | String weight = edtWeight.getText().toString(); | 151 | String weight = edtWeight.getText().toString(); |
152 | String bodyFat = edtBodyFat.getText().toString(); | 152 | String bodyFat = edtBodyFat.getText().toString(); |
153 | // address | 153 | // address |
154 | String comment = edtComment.getText().toString(); | 154 | String comment = edtComment.getText().toString(); |
155 | 155 | ||
156 | 156 | ||
157 | if (userName.isEmpty()) { | 157 | if (userName.isEmpty()) { |
158 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.username_null)); | 158 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.username_null)); |
159 | return false; | 159 | return false; |
160 | } | 160 | } |
161 | 161 | ||
162 | if (name.isEmpty()) { | 162 | if (name.isEmpty()) { |
163 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.name_null)); | 163 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.name_null)); |
164 | return false; | 164 | return false; |
165 | } | 165 | } |
166 | 166 | ||
167 | if (nickName.isEmpty()) { | 167 | if (nickName.isEmpty()) { |
168 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.nickname_null)); | 168 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.nickname_null)); |
169 | return false; | 169 | return false; |
170 | } | 170 | } |
171 | 171 | ||
172 | if (email.isEmpty()) { | 172 | if (email.isEmpty()) { |
173 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.mail_null)); | 173 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.mail_null)); |
174 | return false; | 174 | return false; |
175 | } else { | 175 | } else { |
176 | if (!Utils.checkMailFormat(email)) { | 176 | if (!Utils.checkMailFormat(email)) { |
177 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.mail_invalid)); | 177 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.mail_invalid)); |
178 | return false; | 178 | return false; |
179 | } | 179 | } |
180 | } | 180 | } |
181 | 181 | ||
182 | if (pass.isEmpty()) { | 182 | if (pass.isEmpty()) { |
183 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.password_null)); | 183 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.password_null)); |
184 | return false; | 184 | return false; |
185 | }else { | 185 | }else { |
186 | if (pass.length() < 6) { | 186 | if (pass.length() < 6) { |
187 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.password_less_6)); | 187 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.password_less_6)); |
188 | return false; | 188 | return false; |
189 | } | 189 | } |
190 | } | 190 | } |
191 | 191 | ||
192 | if (confirmPass.isEmpty()) { | 192 | if (confirmPass.isEmpty()) { |
193 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.confirm_pass_null)); | 193 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.confirm_pass_null)); |
194 | return false; | 194 | return false; |
195 | } | 195 | } |
196 | 196 | ||
197 | if (!pass.equals(confirmPass)) { | 197 | if (!pass.equals(confirmPass)) { |
198 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.confirm_pass_wrong)); | 198 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.confirm_pass_wrong)); |
199 | return false; | 199 | return false; |
200 | } | 200 | } |
201 | 201 | ||
202 | if (sexInfo == null) { | 202 | if (sexInfo == null) { |
203 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.sex_not_select)); | 203 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.sex_not_select)); |
204 | return false; | 204 | return false; |
205 | } | 205 | } |
206 | 206 | ||
207 | if (mBirthDay == null) { | 207 | if (mBirthDay == null) { |
208 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.birthday_not_select)); | 208 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.birthday_not_select)); |
209 | return false; | 209 | return false; |
210 | } | 210 | } |
211 | 211 | ||
212 | if (height.isEmpty()) { | 212 | if (height.isEmpty()) { |
213 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.height_null)); | 213 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.height_null)); |
214 | return false; | 214 | return false; |
215 | } | 215 | } |
216 | 216 | ||
217 | if (weight.isEmpty()) { | 217 | if (weight.isEmpty()) { |
218 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.weight_null)); | 218 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.weight_null)); |
219 | return false; | 219 | return false; |
220 | } | 220 | } |
221 | 221 | ||
222 | if (bodyFat.isEmpty()) { | 222 | if (bodyFat.isEmpty()) { |
223 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.body_fat_percent_null)); | 223 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.body_fat_percent_null)); |
224 | return false; | 224 | return false; |
225 | } | 225 | } |
226 | 226 | ||
227 | if (provinceInfo == null) { | 227 | if (provinceInfo == null) { |
228 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.province_not_select)); | 228 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.province_not_select)); |
229 | return false; | 229 | return false; |
230 | } | 230 | } |
231 | 231 | ||
232 | if (level == 0) { | 232 | if (level == 0) { |
233 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.level_not_select)); | 233 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.level_not_select)); |
234 | return false; | 234 | return false; |
235 | } | 235 | } |
236 | 236 | ||
237 | if (comment.isEmpty()) { | 237 | if (comment.isEmpty()) { |
238 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.comment_null)); | 238 | showAlerDialog(RegisterActivity.this, getResources().getString(R.string.comment_null)); |
239 | return false; | 239 | return false; |
240 | } | 240 | } |
241 | 241 | ||
242 | mRegisterInfo = new RegisterInfo(); | 242 | mRegisterInfo = new RegisterInfo(); |
243 | mRegisterInfo.setUsername(userName); | 243 | mRegisterInfo.setUsername(userName); |
244 | mRegisterInfo.setFullName(name); | 244 | mRegisterInfo.setFullName(name); |
245 | mRegisterInfo.setNickname(nickName); | 245 | mRegisterInfo.setNickname(nickName); |
246 | mRegisterInfo.setPassword(pass); | 246 | mRegisterInfo.setPassword(pass); |
247 | mRegisterInfo.setBirthday(mBirthDay); | 247 | mRegisterInfo.setBirthday(mBirthDay); |
248 | mRegisterInfo.setHeight(Integer.valueOf(height)); | 248 | mRegisterInfo.setHeight(Integer.valueOf(height)); |
249 | mRegisterInfo.setWeight(Integer.valueOf(weight)); | 249 | mRegisterInfo.setWeight(Integer.valueOf(weight)); |
250 | mRegisterInfo.setFatRate(Integer.valueOf(bodyFat)); | 250 | mRegisterInfo.setFatRate(Integer.valueOf(bodyFat)); |
251 | mRegisterInfo.setGender(sexInfo.getId()); | 251 | mRegisterInfo.setGender(sexInfo.getId()); |
252 | mRegisterInfo.setAddress(provinceInfo.getName()); | 252 | mRegisterInfo.setAddress(provinceInfo.getName()); |
253 | mRegisterInfo.setEmail(email); | 253 | mRegisterInfo.setEmail(email); |
254 | mRegisterInfo.setProfileImage(profileImagePath); | 254 | mRegisterInfo.setProfileImage(profileImagePath); |
255 | 255 | ||
256 | return true; | 256 | return true; |
257 | } | 257 | } |
258 | 258 | ||
259 | private void handleRegister() { | 259 | private void handleRegister() { |
260 | progressDialog = new ProgressDialog(RegisterActivity.this); | 260 | progressDialog = new ProgressDialog(RegisterActivity.this); |
261 | progressDialog.setMessage(getResources().getString(R.string.uploading)); | 261 | progressDialog.setMessage(getResources().getString(R.string.uploading)); |
262 | progressDialog.setCancelable(false); | 262 | progressDialog.setCancelable(false); |
263 | progressDialog.show(); | 263 | progressDialog.show(); |
264 | 264 | ||
265 | ApiServices.register(mRegisterInfo, new LLAPIManagerListener() { | 265 | ApiServices.register(mRegisterInfo, new LLAPIManagerListener() { |
266 | @Override | 266 | @Override |
267 | public void onError(Error error) { | 267 | public void onError(Error error) { |
268 | progressDialog.dismiss(); | 268 | progressDialog.dismiss(); |
269 | Debug.error(" Can not upload data"); | 269 | Debug.error(" Can not upload data"); |
270 | if (error != null) { | 270 | if (error != null) { |
271 | String err = getResources().getString(R.string.register_err); | 271 | String err = getResources().getString(R.string.register_err); |
272 | notifyErr(err); | 272 | notifyErr(err); |
273 | } | 273 | } |
274 | } | 274 | } |
275 | 275 | ||
276 | @Override | 276 | @Override |
277 | public void onSuccess(String json) { | 277 | public void onSuccess(String json) { |
278 | progressDialog.dismiss(); | 278 | progressDialog.dismiss(); |
279 | if (json != null) { | 279 | if (json != null) { |
280 | Debug.warn(" Upload data success success"); | 280 | Debug.warn(" Upload data success success"); |
281 | Debug.warn("DATA JSON result: " + json.toString()); | 281 | Debug.warn("DATA JSON result: " + json.toString()); |
282 | registerDone(); | 282 | registerDone(); |
283 | } else { | 283 | } else { |
284 | Debug.warn(" Upload data fail: response null"); | 284 | Debug.warn(" Upload data fail: response null"); |
285 | String err = getResources().getString(R.string.err_exception); | 285 | String err = getResources().getString(R.string.err_exception); |
286 | notifyErr(err); | 286 | notifyErr(err); |
287 | } | 287 | } |
288 | } | 288 | } |
289 | 289 | ||
290 | @Override | 290 | @Override |
291 | public void onSuccess(JSONObject object) { | 291 | public void onSuccess(JSONObject object) { |
292 | Debug.warn("Version JSON object result: Success"); | 292 | Debug.warn("Version JSON object result: Success"); |
293 | progressDialog.dismiss(); | 293 | progressDialog.dismiss(); |
294 | 294 | ||
295 | String email = object.optString("email"); | 295 | String email = object.optString("email"); |
296 | String username = object.optString("username"); | 296 | String username = object.optString("username"); |
297 | String pass = object.optString("password"); | 297 | String pass = object.optString("password"); |
298 | Debug.normal("Email: "+email +"\n"+ "Username: "+username); | 298 | Debug.normal("Email: "+email +"\n"+ "Username: "+username); |
299 | // save data | 299 | // save data |
300 | Setting.setUserDataSharepre(RegisterActivity.this, Setting.EMAIL_SHAREPRE, email); | 300 | Setting.setUserDataSharepre(RegisterActivity.this, Setting.EMAIL_SHAREPRE, email); |
301 | Setting.setUserDataSharepre(RegisterActivity.this, Setting.USER_SHAREPRE, username); | 301 | Setting.setUserDataSharepre(RegisterActivity.this, Setting.USER_SHAREPRE, username); |
302 | Setting.setUserDataSharepre(RegisterActivity.this, Setting.PASS_SHAREPRE, pass); | 302 | Setting.setUserDataSharepre(RegisterActivity.this, Setting.PASS_SHAREPRE, pass); |
303 | registerDone(); | 303 | registerDone(); |
304 | } | 304 | } |
305 | }); | 305 | }); |
306 | } | 306 | } |
307 | 307 | ||
308 | private void hanleGetImagePath(Bitmap bitmap){ | 308 | private void hanleGetImagePath(Bitmap bitmap){ |
309 | progressDialog = new ProgressDialog(RegisterActivity.this); | 309 | progressDialog = new ProgressDialog(RegisterActivity.this); |
310 | progressDialog.setMessage(getResources().getString(R.string.uploading)); | 310 | progressDialog.setMessage(getResources().getString(R.string.uploading)); |
311 | progressDialog.setCancelable(false); | 311 | progressDialog.setCancelable(false); |
312 | progressDialog.show(); | 312 | progressDialog.show(); |
313 | 313 | ||
314 | ApiServices.uploadImage(bitmap, new LLAPIManagerListener() { | 314 | ApiServices.uploadImage(bitmap, new LLAPIManagerListener() { |
315 | @Override | 315 | @Override |
316 | public void onError(Error error) { | 316 | public void onError(Error error) { |
317 | progressDialog.dismiss(); | 317 | progressDialog.dismiss(); |
318 | Debug.error(" Can not upload data"); | 318 | Debug.error(" Can not upload data"); |
319 | if (error != null) { | 319 | if (error != null) { |
320 | String err = getResources().getString(R.string.register_err); | 320 | String err = getResources().getString(R.string.register_err); |
321 | notifyErr(err); | 321 | notifyErr(err); |
322 | } | 322 | } |
323 | } | 323 | } |
324 | 324 | ||
325 | @Override | 325 | @Override |
326 | public void onSuccess(String json) { | 326 | public void onSuccess(String urlImage) { |
327 | if (json != null) { | 327 | if (urlImage != null) { |
328 | progressDialog.dismiss(); | ||
328 | Debug.warn(" Upload data success success"); | 329 | Debug.warn(" Upload data success success"); |
329 | Debug.warn("DATA JSON result: " + json.toString()); | 330 | Debug.warn("DATA JSON result: " + urlImage); |
330 | uploadImageDone(json); | 331 | uploadImageDone(urlImage); |
331 | } else { | 332 | } else { |
332 | progressDialog.dismiss(); | 333 | progressDialog.dismiss(); |
333 | Debug.warn(" Upload data fail: response null"); | 334 | Debug.warn(" Upload data fail: response null"); |
334 | String err = getResources().getString(R.string.err_exception); | 335 | String err = getResources().getString(R.string.err_exception); |
335 | notifyErr(err); | 336 | notifyErr(err); |
336 | } | 337 | } |
337 | } | 338 | } |
338 | 339 | ||
339 | @Override | 340 | @Override |
340 | public void onSuccess(JSONObject array) { | 341 | public void onSuccess(JSONObject array) { |
341 | progressDialog.dismiss(); | 342 | progressDialog.dismiss(); |
342 | Debug.warn(" Upload data success array"); | 343 | Debug.warn(" Upload data success array"); |
343 | } | 344 | } |
344 | }); | 345 | }); |
345 | } | 346 | } |
346 | 347 | ||
347 | private void registerDone(){ | 348 | private void registerDone(){ |
348 | Toast.makeText(RegisterActivity.this, R.string.register_success, Toast.LENGTH_SHORT).show(); | 349 | Toast.makeText(RegisterActivity.this, R.string.register_success, Toast.LENGTH_SHORT).show(); |
349 | finish(); | 350 | finish(); |
350 | } | 351 | } |
351 | 352 | ||
352 | private void uploadImageDone(String path){ | 353 | private void uploadImageDone(String path){ |
353 | profileImagePath = path; | 354 | profileImagePath = path; |
354 | } | 355 | } |
355 | 356 | ||
356 | private void notifyErr(String err) { | 357 | private void notifyErr(String err) { |
357 | AlertDialog.Builder alertDialog = new AlertDialog.Builder(RegisterActivity.this); | 358 | AlertDialog.Builder alertDialog = new AlertDialog.Builder(RegisterActivity.this); |
358 | alertDialog.setMessage(err); | 359 | alertDialog.setMessage(err); |
359 | alertDialog.setCancelable(false); | 360 | alertDialog.setCancelable(false); |
360 | alertDialog.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { | 361 | alertDialog.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { |
361 | @Override | 362 | @Override |
362 | public void onClick(DialogInterface dialog, int which) { | 363 | public void onClick(DialogInterface dialog, int which) { |
363 | finish(); | 364 | finish(); |
364 | } | 365 | } |
365 | }); | 366 | }); |
366 | alertDialog.show(); | 367 | alertDialog.show(); |
367 | } | 368 | } |
368 | 369 | ||
369 | private void doSelectSex() { | 370 | private void doSelectSex() { |
370 | String title = getResources().getString(R.string.sex); | 371 | String title = getResources().getString(R.string.sex); |
371 | new SimpleSelectBoxDialogBuilder().create(RegisterActivity.this, title, sexList, new OnSelectResultListener() { | 372 | new SimpleSelectBoxDialogBuilder().create(RegisterActivity.this, title, sexList, new OnSelectResultListener() { |
372 | @Override | 373 | @Override |
373 | public void onSelectedItem(SelectItemInfo selectItemInfo) { | 374 | public void onSelectedItem(SelectItemInfo selectItemInfo) { |
374 | if (selectItemInfo != null) { | 375 | if (selectItemInfo != null) { |
375 | Debug.normal("Item selected: " + selectItemInfo.getName()); | 376 | Debug.normal("Item selected: " + selectItemInfo.getName()); |
376 | sexInfo = selectItemInfo; | 377 | sexInfo = selectItemInfo; |
377 | tvSex.setText(sexInfo.getName()); | 378 | tvSex.setText(sexInfo.getName()); |
378 | } else { | 379 | } else { |
379 | Debug.normal("Have not item selected"); | 380 | Debug.normal("Have not item selected"); |
380 | } | 381 | } |
381 | } | 382 | } |
382 | }).show(); | 383 | }).show(); |
383 | } | 384 | } |
384 | 385 | ||
385 | private void doSelectProvince() { | 386 | private void doSelectProvince() { |
386 | String title = getResources().getString(R.string.prefecture); | 387 | String title = getResources().getString(R.string.prefecture); |
387 | new SimpleSelectBoxDialogBuilder().create(RegisterActivity.this, title, provinceList, new OnSelectResultListener() { | 388 | new SimpleSelectBoxDialogBuilder().create(RegisterActivity.this, title, provinceList, new OnSelectResultListener() { |
388 | @Override | 389 | @Override |
389 | public void onSelectedItem(SelectItemInfo selectItemInfo) { | 390 | public void onSelectedItem(SelectItemInfo selectItemInfo) { |
390 | if (selectItemInfo != null) { | 391 | if (selectItemInfo != null) { |
391 | Debug.normal("Item selected: " + selectItemInfo.getName()); | 392 | Debug.normal("Item selected: " + selectItemInfo.getName()); |
392 | provinceInfo = selectItemInfo; | 393 | provinceInfo = selectItemInfo; |
393 | tvAddress.setText(provinceInfo.getName()); | 394 | tvAddress.setText(provinceInfo.getName()); |
394 | } else { | 395 | } else { |
395 | Debug.normal("Have not item selected"); | 396 | Debug.normal("Have not item selected"); |
396 | } | 397 | } |
397 | } | 398 | } |
398 | }).show(); | 399 | }).show(); |
399 | } | 400 | } |
400 | 401 | ||
401 | private void hanleSelectDate() { | 402 | private void hanleSelectDate() { |
402 | 403 | ||
403 | DatePickerDialog datePicker = new DatePickerDialog(RegisterActivity.this, new DatePickerDialog.OnDateSetListener() { | 404 | DatePickerDialog datePicker = new DatePickerDialog(RegisterActivity.this, new DatePickerDialog.OnDateSetListener() { |
404 | @Override | 405 | @Override |
405 | public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { | 406 | public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { |
406 | 407 | ||
407 | mDay = dayOfMonth; | 408 | mDay = dayOfMonth; |
408 | mMonth = month; | 409 | mMonth = month; |
409 | mYear = year; | 410 | mYear = year; |
410 | mCalendar = Calendar.getInstance(); | 411 | mCalendar = Calendar.getInstance(); |
411 | mCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); | 412 | mCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); |
412 | mCalendar.set(Calendar.MONTH, month); | 413 | mCalendar.set(Calendar.MONTH, month); |
413 | mCalendar.set(Calendar.YEAR, year); | 414 | mCalendar.set(Calendar.YEAR, year); |
414 | mBirthDay = mCalendar.getTime(); | 415 | mBirthDay = mCalendar.getTime(); |
415 | 416 | ||
416 | String dateStr = Utils.convertDateToStringDialogSelect(mBirthDay); | 417 | String dateStr = Utils.convertDateToStringDialogSelect(mBirthDay); |
417 | tvBirthday.setText(dateStr); | 418 | tvBirthday.setText(dateStr); |
418 | } | 419 | } |
419 | }, mYear, mMonth, mDay); | 420 | }, mYear, mMonth, mDay); |
420 | datePicker.getDatePicker().setMaxDate(new Date().getTime()); | 421 | datePicker.getDatePicker().setMaxDate(new Date().getTime()); |
421 | datePicker.show(); | 422 | datePicker.show(); |
422 | } | 423 | } |
423 | 424 | ||
424 | private void updateUILevel() { | 425 | private void updateUILevel() { |
425 | if (level == 1) { | 426 | if (level == 1) { |
426 | setLowButtonSelected(true); | 427 | setLowButtonSelected(true); |
427 | setMidButtonSelected(false); | 428 | setMidButtonSelected(false); |
428 | setHightButtonSelected(false); | 429 | setHightButtonSelected(false); |
429 | } else if (level == 2) { | 430 | } else if (level == 2) { |
430 | setLowButtonSelected(false); | 431 | setLowButtonSelected(false); |
431 | setMidButtonSelected(true); | 432 | setMidButtonSelected(true); |
432 | setHightButtonSelected(false); | 433 | setHightButtonSelected(false); |
433 | } else if (level == 3) { | 434 | } else if (level == 3) { |
434 | setLowButtonSelected(false); | 435 | setLowButtonSelected(false); |
435 | setMidButtonSelected(false); | 436 | setMidButtonSelected(false); |
436 | setHightButtonSelected(true); | 437 | setHightButtonSelected(true); |
437 | } else { | 438 | } else { |
438 | setLowButtonSelected(false); | 439 | setLowButtonSelected(false); |
439 | setMidButtonSelected(false); | 440 | setMidButtonSelected(false); |
440 | setHightButtonSelected(false); | 441 | setHightButtonSelected(false); |
441 | } | 442 | } |
442 | } | 443 | } |
443 | 444 | ||
444 | private void setLowButtonSelected(boolean b) { | 445 | private void setLowButtonSelected(boolean b) { |
445 | if (b) { | 446 | if (b) { |
446 | llLow.setBackgroundResource(R.drawable.left_selected_lev_bg); | 447 | llLow.setBackgroundResource(R.drawable.left_selected_lev_bg); |
447 | tvLow.setTextColor(getResources().getColor(R.color.white)); | 448 | tvLow.setTextColor(getResources().getColor(R.color.white)); |
448 | } else { | 449 | } else { |
449 | llLow.setBackgroundResource(R.drawable.left_unselected_lev_bg); | 450 | llLow.setBackgroundResource(R.drawable.left_unselected_lev_bg); |
450 | tvLow.setTextColor(getResources().getColor(R.color.black)); | 451 | tvLow.setTextColor(getResources().getColor(R.color.black)); |
451 | } | 452 | } |
452 | } | 453 | } |
453 | 454 | ||
454 | private void setMidButtonSelected(boolean b) { | 455 | private void setMidButtonSelected(boolean b) { |
455 | if (b) { | 456 | if (b) { |
456 | llMid.setBackgroundResource(R.drawable.mid_selected_lev_bg); | 457 | llMid.setBackgroundResource(R.drawable.mid_selected_lev_bg); |
457 | tvMid.setTextColor(getResources().getColor(R.color.white)); | 458 | tvMid.setTextColor(getResources().getColor(R.color.white)); |
458 | } else { | 459 | } else { |
459 | llMid.setBackgroundResource(R.drawable.mid_unselected_lev_bg); | 460 | llMid.setBackgroundResource(R.drawable.mid_unselected_lev_bg); |
460 | tvMid.setTextColor(getResources().getColor(R.color.black)); | 461 | tvMid.setTextColor(getResources().getColor(R.color.black)); |
461 | } | 462 | } |
462 | } | 463 | } |
463 | 464 | ||
464 | private void setHightButtonSelected(boolean b) { | 465 | private void setHightButtonSelected(boolean b) { |
465 | if (b) { | 466 | if (b) { |
466 | llHight.setBackgroundResource(R.drawable.right_selected_lev_bg); | 467 | llHight.setBackgroundResource(R.drawable.right_selected_lev_bg); |
467 | tvHight.setTextColor(getResources().getColor(R.color.white)); | 468 | tvHight.setTextColor(getResources().getColor(R.color.white)); |
468 | } else { | 469 | } else { |
469 | llHight.setBackgroundResource(R.drawable.right_unselected_lev_bg); | 470 | llHight.setBackgroundResource(R.drawable.right_unselected_lev_bg); |
470 | tvHight.setTextColor(getResources().getColor(R.color.black)); | 471 | tvHight.setTextColor(getResources().getColor(R.color.black)); |
471 | } | 472 | } |
472 | } | 473 | } |
473 | 474 | ||
474 | private void getImageBrower() { | 475 | private void getImageBrower() { |
475 | Intent intent = new Intent(Intent.ACTION_PICK); | 476 | Intent intent = new Intent(Intent.ACTION_PICK); |
476 | intent.setType("image/*"); | 477 | intent.setType("image/*"); |
477 | startActivityForResult(intent, RESULT_LOAD_IMG); | 478 | startActivityForResult(intent, RESULT_LOAD_IMG); |
478 | } | 479 | } |
479 | 480 | ||
480 | 481 | ||
481 | @OnClick({R.id.btn_register, R.id.rl_sex, R.id.rl_birthday, R.id.rl_address, R.id.ll_low, | 482 | @OnClick({R.id.btn_register, R.id.rl_sex, R.id.rl_birthday, R.id.rl_address, R.id.ll_low, |
482 | R.id.ll_mid, R.id.ll_hight, R.id.profile_image}) | 483 | R.id.ll_mid, R.id.ll_hight, R.id.profile_image}) |
483 | public void onClick(View v) { | 484 | public void onClick(View v) { |
484 | switch (v.getId()) { | 485 | switch (v.getId()) { |
485 | case R.id.btn_register: | 486 | case R.id.btn_register: |
486 | if (checkData()) { | 487 | if (checkData()) { |
487 | handleRegister(); | 488 | handleRegister(); |
488 | } | 489 | } |
489 | break; | 490 | break; |
490 | 491 | ||
491 | case R.id.rl_sex: | 492 | case R.id.rl_sex: |
492 | doSelectSex(); | 493 | doSelectSex(); |
493 | break; | 494 | break; |
494 | 495 | ||
495 | 496 | ||
496 | case R.id.rl_birthday: | 497 | case R.id.rl_birthday: |
497 | hanleSelectDate(); | 498 | hanleSelectDate(); |
498 | break; | 499 | break; |
499 | 500 | ||
500 | case R.id.rl_address: | 501 | case R.id.rl_address: |
501 | doSelectProvince(); | 502 | doSelectProvince(); |
502 | break; | 503 | break; |
503 | 504 | ||
504 | case R.id.ll_low: | 505 | case R.id.ll_low: |
505 | level = 1; | 506 | level = 1; |
506 | updateUILevel(); | 507 | updateUILevel(); |
507 | break; | 508 | break; |
508 | case R.id.ll_mid: | 509 | case R.id.ll_mid: |
509 | level = 2; | 510 | level = 2; |
510 | updateUILevel(); | 511 | updateUILevel(); |
511 | break; | 512 | break; |
512 | case R.id.ll_hight: | 513 | case R.id.ll_hight: |
513 | level = 3; | 514 | level = 3; |
514 | updateUILevel(); | 515 | updateUILevel(); |
515 | break; | 516 | break; |
516 | case R.id.profile_image: | 517 | case R.id.profile_image: |
517 | getImageBrower(); | 518 | getImageBrower(); |
518 | break; | 519 | break; |
519 | 520 | ||
520 | default: | 521 | default: |
521 | break; | 522 | break; |
522 | } | 523 | } |
523 | } | 524 | } |
524 | 525 | ||
525 | @Override | 526 | @Override |
526 | protected void onActivityResult(int requestCode, int resultCode, Intent data) { | 527 | protected void onActivityResult(int requestCode, int resultCode, Intent data) { |
527 | super.onActivityResult(requestCode, resultCode, data); | 528 | super.onActivityResult(requestCode, resultCode, data); |
528 | 529 | ||
529 | if (resultCode == RESULT_OK) { | 530 | if (resultCode == RESULT_OK) { |
530 | if (requestCode == RESULT_LOAD_IMG) { | 531 | if (requestCode == RESULT_LOAD_IMG) { |
531 | try { | 532 | try { |
532 | final Uri imageUri = data.getData(); | 533 | final Uri imageUri = data.getData(); |
533 | final InputStream imageStream = getContentResolver().openInputStream(imageUri); | 534 | final InputStream imageStream = getContentResolver().openInputStream(imageUri); |
534 | final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream); | 535 | final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream); |
535 | hanleGetImagePath(selectedImage); | 536 | hanleGetImagePath(selectedImage); |
536 | profileImage.setImageBitmap(selectedImage); | 537 | profileImage.setImageBitmap(selectedImage); |
537 | } catch (FileNotFoundException e) { | 538 | } catch (FileNotFoundException e) { |
538 | e.printStackTrace(); | 539 | e.printStackTrace(); |
539 | Toast.makeText(RegisterActivity.this, "Something went wrong", Toast.LENGTH_LONG).show(); | 540 | Toast.makeText(RegisterActivity.this, "Something went wrong", Toast.LENGTH_LONG).show(); |
540 | } | 541 | } |
541 | 542 | ||
542 | } else { | 543 | } else { |
543 | Toast.makeText(RegisterActivity.this, "You haven't picked Image", Toast.LENGTH_LONG).show(); | 544 | Toast.makeText(RegisterActivity.this, "You haven't picked Image", Toast.LENGTH_LONG).show(); |
544 | } | 545 | } |
545 | 546 | ||
546 | } | 547 | } |
547 | } | 548 | } |
548 | } | 549 | } |
app/src/main/java/com/dinhcv/lifelogpedometer/activity/WelcomeActivity.java
1 | package com.dinhcv.lifelogpedometer.activity; | 1 | package com.dinhcv.lifelogpedometer.activity; |
2 | 2 | ||
3 | import android.Manifest; | 3 | import android.Manifest; |
4 | import android.app.ProgressDialog; | 4 | import android.app.ProgressDialog; |
5 | import android.content.DialogInterface; | 5 | import android.content.DialogInterface; |
6 | import android.content.Intent; | 6 | import android.content.Intent; |
7 | import android.content.pm.PackageManager; | 7 | import android.content.pm.PackageManager; |
8 | import android.net.Uri; | 8 | import android.net.Uri; |
9 | import android.os.Build; | 9 | import android.os.Build; |
10 | import android.os.Bundle; | 10 | import android.os.Bundle; |
11 | import android.os.Handler; | 11 | import android.os.Handler; |
12 | import android.support.v4.app.ActivityCompat; | 12 | import android.support.v4.app.ActivityCompat; |
13 | import android.support.v4.content.ContextCompat; | 13 | import android.support.v4.content.ContextCompat; |
14 | import android.support.v7.app.AlertDialog; | 14 | import android.support.v7.app.AlertDialog; |
15 | import android.widget.Toast; | 15 | import android.widget.Toast; |
16 | 16 | ||
17 | import com.dinhcv.lifelogpedometer.R; | 17 | import com.dinhcv.lifelogpedometer.R; |
18 | import com.dinhcv.lifelogpedometer.interfaces.LLAPIManagerListener; | 18 | import com.dinhcv.lifelogpedometer.interfaces.LLAPIManagerListener; |
19 | import com.dinhcv.lifelogpedometer.model.Shareprefer.Setting; | 19 | import com.dinhcv.lifelogpedometer.model.Shareprefer.Setting; |
20 | import com.dinhcv.lifelogpedometer.portal.ApiServices; | 20 | import com.dinhcv.lifelogpedometer.portal.ApiServices; |
21 | import com.dinhcv.lifelogpedometer.portal.LLAPIManager; | 21 | import com.dinhcv.lifelogpedometer.portal.LLAPIManager; |
22 | import com.dinhcv.lifelogpedometer.utils.Debug; | 22 | import com.dinhcv.lifelogpedometer.utils.Debug; |
23 | 23 | ||
24 | import org.json.JSONArray; | 24 | import org.json.JSONArray; |
25 | import org.json.JSONObject; | 25 | import org.json.JSONObject; |
26 | 26 | ||
27 | 27 | ||
28 | public class WelcomeActivity extends ActivityBase implements Runnable { | 28 | public class WelcomeActivity extends ActivityBase implements Runnable { |
29 | private boolean isRefresh = false; | 29 | private boolean isRefresh = false; |
30 | private static final int PERMISSIONS_REQUEST = 999; | 30 | private static final int PERMISSIONS_REQUEST = 999; |
31 | 31 | ||
32 | @Override | 32 | @Override |
33 | protected void onCreate(Bundle savedInstanceState) { | 33 | protected void onCreate(Bundle savedInstanceState) { |
34 | super.onCreate(savedInstanceState); | 34 | super.onCreate(savedInstanceState); |
35 | setContentView(R.layout.activity_welcome); | 35 | setContentView(R.layout.activity_welcome); |
36 | checkPermission(); | 36 | checkPermission(); |
37 | } | 37 | } |
38 | 38 | ||
39 | private void checkRefreshToken(){ | 39 | private void checkRefreshToken(){ |
40 | int id = Setting.getUserIdSharepre(WelcomeActivity.this); | 40 | int id = Setting.getUserIdSharepre(WelcomeActivity.this); |
41 | Debug.normal("String id: "+ id); | 41 | Debug.normal("String id: "+ id); |
42 | if (id != 0){ | 42 | if (id != 0){ |
43 | handleRefreshToken(id); | 43 | handleRefreshToken(id); |
44 | }else { | 44 | }else { |
45 | refeshDone(); | 45 | refeshDone(); |
46 | } | 46 | } |
47 | } | 47 | } |
48 | 48 | ||
49 | 49 | ||
50 | private void handleRefreshToken(int id) { | 50 | private void handleRefreshToken(int id) { |
51 | 51 | ||
52 | ApiServices.refreshToken(WelcomeActivity.this, id, new LLAPIManagerListener() { | 52 | ApiServices.refreshToken(WelcomeActivity.this, id, new LLAPIManagerListener() { |
53 | @Override | 53 | @Override |
54 | public void onError(Error error) { | 54 | public void onError(Error error) { |
55 | Debug.error("Version JSON result: ERROR " + error); | 55 | Debug.error("Version JSON result: ERROR " + error); |
56 | String err = getResources().getString(R.string.login_error); | 56 | String err = getResources().getString(R.string.login_error); |
57 | isRefresh = false; | 57 | isRefresh = false; |
58 | refeshDone(); | 58 | refeshDone(); |
59 | } | 59 | } |
60 | 60 | ||
61 | @Override | 61 | @Override |
62 | public void onSuccess(String json) { | 62 | public void onSuccess(String json) { |
63 | Debug.warn("Version JSON result: " + json.toString()); | 63 | Debug.warn("Version JSON result: " + json.toString()); |
64 | isRefresh = true; | 64 | isRefresh = true; |
65 | refeshDone(); | 65 | refeshDone(); |
66 | } | 66 | } |
67 | 67 | ||
68 | @Override | 68 | @Override |
69 | public void onSuccess(JSONObject object) { | 69 | public void onSuccess(JSONObject object) { |
70 | Debug.warn("Version JSON object result: Success"); | 70 | Debug.warn("Version JSON object result: Success"); |
71 | isRefresh = true; | 71 | isRefresh = true; |
72 | refeshDone(); | 72 | refeshDone(); |
73 | } | 73 | } |
74 | }); | 74 | }); |
75 | } | 75 | } |
76 | 76 | ||
77 | private void refeshDone(){ | 77 | private void refeshDone(){ |
78 | Handler handler = new Handler(); | 78 | Handler handler = new Handler(); |
79 | handler.postDelayed(WelcomeActivity.this, 2000); | 79 | handler.postDelayed(WelcomeActivity.this, 2000); |
80 | } | 80 | } |
81 | 81 | ||
82 | private void notifyErr(String err){ | 82 | private void notifyErr(String err){ |
83 | AlertDialog.Builder alertDialog = new AlertDialog.Builder(WelcomeActivity.this); | 83 | AlertDialog.Builder alertDialog = new AlertDialog.Builder(WelcomeActivity.this); |
84 | alertDialog.setMessage(err); | 84 | alertDialog.setMessage(err); |
85 | alertDialog.setCancelable(false); | 85 | alertDialog.setCancelable(false); |
86 | alertDialog.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { | 86 | alertDialog.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { |
87 | @Override | 87 | @Override |
88 | public void onClick(DialogInterface dialog, int which) { | 88 | public void onClick(DialogInterface dialog, int which) { |
89 | finish(); | 89 | finish(); |
90 | } | 90 | } |
91 | }); | 91 | }); |
92 | AlertDialog alert = alertDialog.create(); | 92 | AlertDialog alert = alertDialog.create(); |
93 | alert.show(); | 93 | alert.show(); |
94 | } | 94 | } |
95 | 95 | ||
96 | @Override | 96 | @Override |
97 | public void run() { | 97 | public void run() { |
98 | // go to main screen | 98 | // go to main screen |
99 | if ( isRefresh) { | 99 | if ( isRefresh) { |
100 | gotoActivity(PedometerActivity.class); | 100 | gotoActivity(PedometerActivity.class); |
101 | } else { | 101 | } else { |
102 | // Bundle bundle = new Bundle(); | 102 | // Bundle bundle = new Bundle(); |
103 | // bundle.putString(Const.URL, url); | 103 | // bundle.putString(Const.URL, url); |
104 | gotoActivity(LoginActivity.class); | 104 | gotoActivity(LoginActivity.class); |
105 | } | 105 | } |
106 | finish(); | 106 | finish(); |
107 | } | 107 | } |
108 | 108 | ||
109 | @Override | 109 | @Override |
110 | protected void onResume() { | 110 | protected void onResume() { |
111 | super.onResume(); | 111 | super.onResume(); |
112 | } | 112 | } |
113 | 113 | ||
114 | private void checkPermission() { | 114 | private void checkPermission() { |
115 | // Check all permission in android 6.0 | 115 | // Check all permission in android 6.0 |
116 | if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { | 116 | if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { |
117 | if ((ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) | 117 | if ((ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) |
118 | == PackageManager.PERMISSION_GRANTED) && (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) | 118 | == PackageManager.PERMISSION_GRANTED) && (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) |
119 | == PackageManager.PERMISSION_GRANTED)&& (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) | ||
119 | == PackageManager.PERMISSION_GRANTED)) { | 120 | == PackageManager.PERMISSION_GRANTED)) { |
120 | checkRefreshToken(); | 121 | checkRefreshToken(); |
121 | 122 | ||
122 | } else { | 123 | } else { |
123 | // Requset permisson of device | 124 | // Requset permisson of device |
124 | if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission | 125 | if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission |
125 | .ACCESS_COARSE_LOCATION) | 126 | .ACCESS_COARSE_LOCATION) |
126 | && ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest | 127 | && ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest |
128 | .permission.ACCESS_FINE_LOCATION) && ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest | ||
127 | .permission.ACCESS_FINE_LOCATION)) { | 129 | .permission.ACCESS_FINE_LOCATION)) { |
128 | ActivityCompat.requestPermissions(this, | 130 | ActivityCompat.requestPermissions(this, |
129 | new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, | 131 | new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, |
130 | Manifest.permission.ACCESS_FINE_LOCATION}, | 132 | Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE}, |
131 | PERMISSIONS_REQUEST); | 133 | PERMISSIONS_REQUEST); |
132 | 134 | ||
133 | } else { | 135 | } else { |
134 | ActivityCompat.requestPermissions(this, | 136 | ActivityCompat.requestPermissions(this, |
135 | new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, | 137 | new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, |
136 | Manifest.permission.ACCESS_FINE_LOCATION}, | 138 | Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE}, |
137 | PERMISSIONS_REQUEST); | 139 | PERMISSIONS_REQUEST); |
138 | } | 140 | } |
139 | } | 141 | } |
140 | 142 | ||
141 | } else { | 143 | } else { |
142 | checkRefreshToken(); | 144 | checkRefreshToken(); |
143 | } | 145 | } |
144 | } | 146 | } |
145 | 147 | ||
146 | @Override | 148 | @Override |
147 | public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] | 149 | public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] |
148 | grantResults) { | 150 | grantResults) { |
149 | super.onRequestPermissionsResult(requestCode, permissions, grantResults); | 151 | super.onRequestPermissionsResult(requestCode, permissions, grantResults); |
150 | 152 | ||
151 | if (requestCode == PERMISSIONS_REQUEST) { | 153 | if (requestCode == PERMISSIONS_REQUEST) { |
152 | if (grantResults.length > 0) { | 154 | if (grantResults.length > 0) { |
153 | if (grantResults[0] == PackageManager.PERMISSION_GRANTED | 155 | if (grantResults[0] == PackageManager.PERMISSION_GRANTED |
154 | && grantResults[1] == PackageManager.PERMISSION_GRANTED | 156 | && grantResults[1] == PackageManager.PERMISSION_GRANTED |
155 | && grantResults[2] == PackageManager.PERMISSION_GRANTED) { | 157 | && grantResults[2] == PackageManager.PERMISSION_GRANTED) { |
156 | checkRefreshToken(); | 158 | checkRefreshToken(); |
157 | return; | 159 | return; |
158 | } | 160 | } |
159 | } else { | 161 | } else { |
160 | Toast.makeText(this, "Permission was not granted ", Toast.LENGTH_SHORT).show(); | 162 | Toast.makeText(this, "Permission was not granted ", Toast.LENGTH_SHORT).show(); |
161 | finish(); | 163 | finish(); |
162 | } | 164 | } |
163 | } else { | 165 | } else { |
164 | super.onRequestPermissionsResult(requestCode, permissions, grantResults); | 166 | super.onRequestPermissionsResult(requestCode, permissions, grantResults); |
165 | } | 167 | } |
166 | } | 168 | } |
167 | } | 169 | } |
168 | 170 |
app/src/main/java/com/dinhcv/lifelogpedometer/portal/LLAPIManager.java
1 | package com.dinhcv.lifelogpedometer.portal; | 1 | package com.dinhcv.lifelogpedometer.portal; |
2 | 2 | ||
3 | import android.content.Context; | 3 | import android.content.Context; |
4 | import android.content.res.AssetManager; | 4 | import android.content.res.AssetManager; |
5 | import android.graphics.Bitmap; | 5 | import android.graphics.Bitmap; |
6 | import android.graphics.BitmapFactory; | 6 | import android.graphics.BitmapFactory; |
7 | import android.os.AsyncTask; | 7 | import android.os.AsyncTask; |
8 | import android.provider.Settings; | 8 | import android.os.Environment; |
9 | import android.support.annotation.NonNull; | ||
10 | import android.util.Base64; | 9 | import android.util.Base64; |
10 | import android.util.Log; | ||
11 | 11 | ||
12 | import com.dinhcv.lifelogpedometer.interfaces.LLAPIManagerListener; | 12 | import com.dinhcv.lifelogpedometer.interfaces.LLAPIManagerListener; |
13 | import com.dinhcv.lifelogpedometer.model.Shareprefer.Setting; | 13 | import com.dinhcv.lifelogpedometer.model.Shareprefer.Setting; |
14 | import com.dinhcv.lifelogpedometer.model.structure.RegisterInfo; | 14 | import com.dinhcv.lifelogpedometer.model.structure.RegisterInfo; |
15 | import com.dinhcv.lifelogpedometer.utils.Const; | 15 | import com.dinhcv.lifelogpedometer.utils.Const; |
16 | import com.dinhcv.lifelogpedometer.utils.Debug; | 16 | import com.dinhcv.lifelogpedometer.utils.Debug; |
17 | import com.dinhcv.lifelogpedometer.utils.Utils; | 17 | import com.dinhcv.lifelogpedometer.utils.Utils; |
18 | 18 | ||
19 | import org.json.JSONArray; | 19 | import org.json.JSONArray; |
20 | import org.json.JSONException; | 20 | import org.json.JSONException; |
21 | import org.json.JSONObject; | 21 | import org.json.JSONObject; |
22 | 22 | ||
23 | import java.io.ByteArrayOutputStream; | 23 | import java.io.ByteArrayOutputStream; |
24 | import java.io.File; | ||
25 | import java.io.FileOutputStream; | ||
24 | import java.io.IOException; | 26 | import java.io.IOException; |
25 | import java.io.InputStream; | 27 | import java.io.InputStream; |
28 | import java.io.OutputStreamWriter; | ||
29 | import java.io.UnsupportedEncodingException; | ||
30 | import java.net.URLEncoder; | ||
26 | import java.util.Date; | 31 | import java.util.Date; |
32 | import java.util.HashMap; | ||
33 | import java.util.Map; | ||
27 | import java.util.concurrent.TimeUnit; | 34 | import java.util.concurrent.TimeUnit; |
28 | 35 | ||
29 | import okhttp3.HttpUrl; | 36 | import okhttp3.HttpUrl; |
30 | import okhttp3.MediaType; | 37 | import okhttp3.MediaType; |
31 | import okhttp3.OkHttpClient; | 38 | import okhttp3.OkHttpClient; |
32 | import okhttp3.Request; | 39 | import okhttp3.Request; |
33 | import okhttp3.RequestBody; | 40 | import okhttp3.RequestBody; |
34 | import okhttp3.Response; | 41 | import okhttp3.Response; |
35 | import okhttp3.ResponseBody; | 42 | import okhttp3.ResponseBody; |
36 | 43 | ||
37 | public class LLAPIManager { | 44 | public class LLAPIManager { |
38 | private static String URL_ROOT = "http://clover.timesfun.jp:9001/"; | 45 | private static String URL_ROOT = "http://clover.timesfun.jp:9001/"; |
39 | //login info | 46 | //login info |
40 | private static String URL_LOGIN_INFO = "login"; | 47 | private static String URL_LOGIN_INFO = "login"; |
41 | //register info | 48 | //register info |
42 | private static String URL_REGISTER_INFO = "register"; | 49 | private static String URL_REGISTER_INFO = "register"; |
43 | //upload image info | 50 | //upload image info |
44 | private static String URL_UPLOAD_IMAGE_INFO = "upload-image"; | 51 | private static String URL_UPLOAD_IMAGE_INFO = "upload-image"; |
45 | //Search zipcode | 52 | //Search zipcode |
46 | private static String URL_FORGET_PASS_INFO = "forgetPass"; | 53 | private static String URL_FORGET_PASS_INFO = "forgetPass"; |
47 | //history | 54 | //history |
48 | private static String URL_HISTORE_INFO = "api/history"; | 55 | private static String URL_HISTORE_INFO = "api/history"; |
49 | //history detail | 56 | //history detail |
50 | private static String URL_HISTORE_DETAIL_INFO = "api/history/detail"; | 57 | private static String URL_HISTORE_DETAIL_INFO = "api/history/detail"; |
51 | // home | 58 | // home |
52 | private static String URL_HOME_INFO = "api/home"; | 59 | private static String URL_HOME_INFO = "api/home"; |
53 | //Search zipcode | 60 | //Search zipcode |
54 | private static String URL_FORGET_PASS_CONFIRM_INFO = "forgetPass/confirm"; | 61 | private static String URL_FORGET_PASS_CONFIRM_INFO = "forgetPass/confirm"; |
55 | // Refesh Token | 62 | // Refesh Token |
56 | private static String URL_REFESH_TOKEN_INFO = "refreshToken"; | 63 | private static String URL_REFESH_TOKEN_INFO = "refreshToken"; |
57 | // Top info | 64 | // Top info |
58 | private static String URL_TOP_INFO = "api/top"; | 65 | private static String URL_TOP_INFO = "api/top"; |
59 | // Refesh Token | 66 | // Refesh Token |
60 | private static String URL_CREATE_LOG_INFO = "api/createLog"; | 67 | private static String URL_CREATE_LOG_INFO = "api/createLog"; |
61 | // Get news | 68 | // Get news |
62 | private static String URL_GET_NEWS_INFO = "api/getnoticesbydate"; | 69 | private static String URL_GET_NEWS_INFO = "api/getnoticesbydate"; |
63 | 70 | ||
64 | 71 | ||
65 | private static int deviationValue = 1; | 72 | private static int deviationValue = 1; |
66 | 73 | ||
67 | public static class Login extends AsyncTask<Void, Void, String>{ | 74 | public static class Login extends AsyncTask<Void, Void, String>{ |
68 | private Context context; | 75 | private Context context; |
69 | private String email; | 76 | private String email; |
70 | private String pass; | 77 | private String pass; |
71 | private LLAPIManagerListener action; | 78 | private LLAPIManagerListener action; |
72 | 79 | ||
73 | public Login(Context context, String email, String pass, LLAPIManagerListener action) { | 80 | public Login(Context context, String email, String pass, LLAPIManagerListener action) { |
74 | this.context = context; | 81 | this.context = context; |
75 | this.email = email; | 82 | this.email = email; |
76 | this.pass = pass; | 83 | this.pass = pass; |
77 | this.action = action; | 84 | this.action = action; |
78 | } | 85 | } |
79 | 86 | ||
80 | @Override | 87 | @Override |
81 | protected void onPreExecute() { | 88 | protected void onPreExecute() { |
82 | super.onPreExecute(); | 89 | super.onPreExecute(); |
83 | } | 90 | } |
84 | 91 | ||
85 | @Override | 92 | @Override |
86 | protected String doInBackground(Void... voids) { | 93 | protected String doInBackground(Void... voids) { |
87 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_LOGIN_INFO); | 94 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_LOGIN_INFO); |
88 | JSONObject jsonObject = new JSONObject(); | 95 | JSONObject jsonObject = new JSONObject(); |
89 | 96 | ||
90 | try { | 97 | try { |
91 | jsonObject.put("email", email); | 98 | jsonObject.put("email", email); |
92 | jsonObject.put("password", pass); | 99 | jsonObject.put("password", pass); |
93 | 100 | ||
94 | Debug.warn("Json data: " + jsonObject.toString()); | 101 | Debug.warn("Json data: " + jsonObject.toString()); |
95 | } catch (JSONException e) { | 102 | } catch (JSONException e) { |
96 | Debug.normal("Error ", e.getMessage()); | 103 | Debug.normal("Error ", e.getMessage()); |
97 | } | 104 | } |
98 | 105 | ||
99 | MediaType JSON | 106 | MediaType JSON |
100 | = MediaType.parse("application/json"); | 107 | = MediaType.parse("application/json"); |
101 | Debug.normal("JSON STRING: %s", jsonObject.toString()); | 108 | Debug.normal("JSON STRING: %s", jsonObject.toString()); |
102 | RequestBody requestBody = RequestBody.create(JSON, jsonObject.toString()); | 109 | RequestBody requestBody = RequestBody.create(JSON, jsonObject.toString()); |
103 | 110 | ||
104 | final Request.Builder request = new Request.Builder() | 111 | final Request.Builder request = new Request.Builder() |
105 | .url(baseUrl) | 112 | .url(baseUrl) |
106 | .header("User-Agent", Utils.getCustomUA()) | 113 | .header("User-Agent", Utils.getCustomUA()) |
107 | .header("Content-Type", "application/json") | 114 | .header("Content-Type", "application/json") |
108 | .post(requestBody); | 115 | .post(requestBody); |
109 | 116 | ||
110 | OkHttpClient httpClient = new OkHttpClient.Builder() | 117 | OkHttpClient httpClient = new OkHttpClient.Builder() |
111 | .readTimeout(30, TimeUnit.SECONDS) | 118 | .readTimeout(30, TimeUnit.SECONDS) |
112 | .writeTimeout(30, TimeUnit.SECONDS) | 119 | .writeTimeout(30, TimeUnit.SECONDS) |
113 | .connectTimeout(30, TimeUnit.SECONDS) | 120 | .connectTimeout(30, TimeUnit.SECONDS) |
114 | .build(); | 121 | .build(); |
115 | 122 | ||
116 | String jsonString = null; | 123 | String jsonString = null; |
117 | try { | 124 | try { |
118 | Response response = httpClient.newCall(request.build()).execute(); | 125 | Response response = httpClient.newCall(request.build()).execute(); |
119 | if (response == null) { | 126 | if (response == null) { |
120 | action.onError(null); | 127 | action.onError(null); |
121 | Debug.error("Response is null"); | 128 | Debug.error("Response is null"); |
122 | return null; | 129 | return null; |
123 | } | 130 | } |
124 | jsonString = getResponseData(response.body()); | 131 | jsonString = getResponseData(response.body()); |
125 | 132 | ||
126 | } catch (IOException e) { | 133 | } catch (IOException e) { |
127 | Debug.normal("Error %s", e.getMessage()); | 134 | Debug.normal("Error %s", e.getMessage()); |
128 | } | 135 | } |
129 | return jsonString; | 136 | return jsonString; |
130 | } | 137 | } |
131 | 138 | ||
132 | @Override | 139 | @Override |
133 | protected void onCancelled() { | 140 | protected void onCancelled() { |
134 | super.onCancelled(); | 141 | super.onCancelled(); |
135 | action.onError(null); | 142 | action.onError(null); |
136 | } | 143 | } |
137 | 144 | ||
138 | @Override | 145 | @Override |
139 | protected void onPostExecute(String jsonString) { | 146 | protected void onPostExecute(String jsonString) { |
140 | super.onPostExecute(jsonString); | 147 | super.onPostExecute(jsonString); |
141 | 148 | ||
142 | if ((jsonString == null) || (jsonString.isEmpty())) { | 149 | if ((jsonString == null) || (jsonString.isEmpty())) { |
143 | action.onError(null); | 150 | action.onError(null); |
144 | return; | 151 | return; |
145 | } | 152 | } |
146 | Debug.normal("String body: "+jsonString); | 153 | Debug.normal("String body: "+jsonString); |
147 | 154 | ||
148 | try { | 155 | try { |
149 | JSONObject jsonObject = new JSONObject(jsonString); | 156 | JSONObject jsonObject = new JSONObject(jsonString); |
150 | int status = jsonObject.optInt("status"); | 157 | int status = jsonObject.optInt("status"); |
151 | if (status == 1){ | 158 | if (status == 1){ |
152 | JSONObject object = jsonObject.optJSONObject("result"); | 159 | JSONObject object = jsonObject.optJSONObject("result"); |
153 | JSONObject objUser = object.getJSONObject("user"); | 160 | JSONObject objUser = object.getJSONObject("user"); |
154 | String token = object.optString("token"); | 161 | String token = object.optString("token"); |
155 | // save data | 162 | // save data |
156 | Setting.setUserDataSharepre(context, Setting.TOKEN_SHAREPRE, token); | 163 | Setting.setUserDataSharepre(context, Setting.TOKEN_SHAREPRE, token); |
157 | APIResponse.getInstance().setToken(token); | 164 | APIResponse.getInstance().setToken(token); |
158 | Debug.normal("Token: "+ token); | 165 | Debug.normal("Token: "+ token); |
159 | action.onSuccess(objUser); | 166 | action.onSuccess(objUser); |
160 | }else { | 167 | }else { |
161 | action.onError(new Error(jsonObject.optString("message"))); | 168 | action.onError(new Error(jsonObject.optString("message"))); |
162 | } | 169 | } |
163 | } catch (JSONException e) { | 170 | } catch (JSONException e) { |
164 | e.printStackTrace(); | 171 | e.printStackTrace(); |
165 | } | 172 | } |
166 | } | 173 | } |
167 | } | 174 | } |
168 | 175 | ||
169 | public static class UploadImage extends AsyncTask<Void, Void, String>{ | 176 | public static class UploadImage extends AsyncTask<Void, Void, String>{ |
170 | private Bitmap bitmap; | 177 | private Bitmap bitmap; |
171 | private LLAPIManagerListener action; | 178 | private LLAPIManagerListener action; |
172 | 179 | ||
173 | public UploadImage(Bitmap bitmap, LLAPIManagerListener action) { | 180 | public UploadImage(Bitmap bitmap, LLAPIManagerListener action) { |
174 | this.bitmap = bitmap; | 181 | this.bitmap = bitmap; |
175 | this.action = action; | 182 | this.action = action; |
176 | } | 183 | } |
177 | 184 | ||
178 | @Override | 185 | @Override |
179 | protected void onPreExecute() { | 186 | protected void onPreExecute() { |
180 | super.onPreExecute(); | 187 | super.onPreExecute(); |
181 | } | 188 | } |
182 | 189 | ||
183 | @Override | 190 | @Override |
184 | protected String doInBackground(Void... voids) { | 191 | protected String doInBackground(Void... voids) { |
185 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_UPLOAD_IMAGE_INFO); | 192 | String baseUrl = URL_ROOT + URL_UPLOAD_IMAGE_INFO; |
186 | JSONObject jsonObject = new JSONObject(); | 193 | |
187 | byte[] bitmapByte = convertBitmapToByteArray(bitmap); | 194 | Bitmap b = Bitmap.createScaledBitmap(bitmap, 120, 120, false); |
195 | byte[] bitmapByte = convertBitmapToByteArray(b); | ||
188 | String imageBase64 = Base64.encodeToString(bitmapByte, Base64.DEFAULT); | 196 | String imageBase64 = Base64.encodeToString(bitmapByte, Base64.DEFAULT); |
189 | String imageStr = imageBase64.replace("\n",""); | ||
190 | 197 | ||
191 | String token = APIResponse.getInstance().getToken(); | 198 | String token = APIResponse.getInstance().getToken(); |
192 | try { | 199 | //generate hashMap to store encodedImage and the name |
193 | if (token != null && !token.isEmpty()) { | 200 | HashMap<String,String> detail = new HashMap<>(); |
194 | Debug.normal("Token is not null"); | 201 | detail.put("img", imageBase64); |
195 | jsonObject.put("token", token); | 202 | if (token != null && !token.isEmpty()) { |
196 | } | 203 | Debug.normal("Token is not null"); |
197 | jsonObject.put("img", imageStr); | 204 | detail.put("token", token); |
198 | |||
199 | Debug.warn("Json data: " + jsonObject.toString()); | ||
200 | } catch (JSONException e) { | ||
201 | Debug.normal("Error ", e.getMessage()); | ||
202 | } | 205 | } |
203 | 206 | ||
204 | MediaType JSON | ||
205 | = MediaType.parse("application/json; charset=utf-8"); | ||
206 | RequestBody requestBody = RequestBody.create(JSON, jsonObject.toString()); | ||
207 | |||
208 | final Request.Builder request = new Request.Builder() | ||
209 | .url(baseUrl) | ||
210 | .header("User-Agent", Utils.getCustomUA()) | ||
211 | .header("Content-Type", "application/json") | ||
212 | .post(requestBody); | ||
213 | |||
214 | OkHttpClient httpClient = new OkHttpClient.Builder() | ||
215 | .readTimeout(30, TimeUnit.SECONDS) | ||
216 | .writeTimeout(30, TimeUnit.SECONDS) | ||
217 | .connectTimeout(30, TimeUnit.SECONDS) | ||
218 | .build(); | ||
219 | String jsonString = null; | ||
220 | try { | 207 | try { |
221 | Response response = httpClient.newCall(request.build()).execute(); | 208 | String dataToSend = hashMapToUrl(detail); |
209 | |||
210 | String response = RequestPostImage.post(baseUrl,dataToSend); | ||
222 | if (response == null) { | 211 | if (response == null) { |
223 | action.onError(null); | 212 | action.onError(null); |
224 | Debug.error("Response is null"); | 213 | Debug.error("Response is null"); |
225 | return null; | 214 | return null; |
226 | } | 215 | } |
227 | jsonString = getResponseData(response.body()); | ||
228 | 216 | ||
217 | Debug.normal("Response: "+response); | ||
218 | return response; | ||
229 | } catch (IOException e) { | 219 | } catch (IOException e) { |
230 | Debug.normal("Error %s", e.getMessage()); | 220 | Debug.normal("Error %s", e.getMessage()); |
221 | return null; | ||
231 | } | 222 | } |
232 | |||
233 | return jsonString; | ||
234 | } | 223 | } |
235 | 224 | ||
236 | @Override | 225 | @Override |
237 | protected void onCancelled() { | 226 | protected void onCancelled() { |
238 | super.onCancelled(); | 227 | super.onCancelled(); |
239 | action.onError(null); | 228 | action.onError(null); |
240 | } | 229 | } |
241 | 230 | ||
242 | @Override | 231 | @Override |
243 | protected void onPostExecute(String jsonString) { | 232 | protected void onPostExecute(String jsonString) { |
244 | super.onPostExecute(jsonString); | 233 | super.onPostExecute(jsonString); |
245 | if ((jsonString == null) || (jsonString.isEmpty())) { | 234 | if ((jsonString == null) || (jsonString.isEmpty())) { |
246 | action.onError(null); | 235 | action.onError(null); |
247 | return; | 236 | return; |
248 | } | 237 | } |
249 | Debug.normal("String body: "+jsonString); | 238 | Debug.normal("String body: "+jsonString); |
250 | 239 | ||
251 | try { | 240 | try { |
252 | JSONObject jsonObject = new JSONObject(jsonString); | 241 | JSONObject jsonObject = new JSONObject(jsonString); |
253 | int status = jsonObject.optInt("status"); | 242 | int status = jsonObject.optInt("httpCode"); |
254 | if (status == 1){ | 243 | if (status != 0){ |
255 | action.onSuccess(new JSONObject()); | 244 | action.onSuccess(jsonObject.optString("message")); |
256 | }else { | 245 | }else { |
257 | action.onError(new Error(jsonObject.optString("message"))); | 246 | action.onError(new Error(jsonObject.optString("message"))); |
258 | } | 247 | } |
259 | } catch (JSONException e) { | 248 | } catch (JSONException e) { |
260 | e.printStackTrace(); | 249 | e.printStackTrace(); |
261 | } | 250 | } |
262 | } | 251 | } |
263 | } | 252 | } |
264 | 253 | ||
254 | public static class UploadImage1 extends AsyncTask<Void, Void, String>{ | ||
255 | private Bitmap bitmap; | ||
256 | private LLAPIManagerListener action; | ||
257 | |||
258 | public UploadImage1(Bitmap bitmap, LLAPIManagerListener action) { | ||
259 | this.bitmap = bitmap; | ||
260 | this.action = action; | ||
261 | } | ||
262 | |||
263 | @Override | ||
264 | protected void onPreExecute() { | ||
265 | super.onPreExecute(); | ||
266 | } | ||
267 | |||
268 | @Override | ||
269 | protected String doInBackground(Void... voids) { | ||
270 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_UPLOAD_IMAGE_INFO); | ||
271 | JSONObject jsonObject = new JSONObject(); | ||
272 | Bitmap b = Bitmap.createScaledBitmap(bitmap, 120, 120, false); | ||
273 | byte[] bitmapByte = convertBitmapToByteArray(b); | ||
274 | String imageBase64 = Base64.encodeToString(bitmapByte, Base64.DEFAULT); | ||
275 | //String imageStr = imageBase64.replace("\n",""); | ||
276 | //writeToFile(imageBase64); | ||
277 | |||
278 | String token = APIResponse.getInstance().getToken(); | ||
279 | try { | ||
280 | if (token != null && !token.isEmpty()) { | ||
281 | Debug.normal("Token is not null"); | ||
282 | jsonObject.put("token", token); | ||
283 | } | ||
284 | jsonObject.put("img", imageBase64); | ||
285 | |||
286 | //Debug.warn("Json data: " + jsonObject.toString()); | ||
287 | } catch (JSONException e) { | ||
288 | Debug.normal("Error ", e.getMessage()); | ||
289 | } | ||
290 | |||
291 | MediaType JSON | ||
292 | = MediaType.parse("application/json; charset=utf-8"); | ||
293 | RequestBody requestBody = RequestBody.create(JSON, jsonObject.toString()); | ||
294 | |||
295 | final Request.Builder request = new Request.Builder() | ||
296 | .url(baseUrl) | ||
297 | .header("Content-Type", "application/json") | ||
298 | .post(requestBody); | ||
299 | |||
300 | OkHttpClient httpClient = new OkHttpClient.Builder() | ||
301 | .readTimeout(30, TimeUnit.SECONDS) | ||
302 | .writeTimeout(30, TimeUnit.SECONDS) | ||
303 | .connectTimeout(30, TimeUnit.SECONDS) | ||
304 | .build(); | ||
305 | String jsonString = null; | ||
306 | try { | ||
307 | Response response = httpClient.newCall(request.build()).execute(); | ||
308 | if (response == null) { | ||
309 | action.onError(null); | ||
310 | Debug.error("Response is null"); | ||
311 | return null; | ||
312 | } | ||
313 | jsonString = getResponseData(response.body()); | ||
314 | |||
315 | } catch (IOException e) { | ||
316 | Debug.normal("Error %s", e.getMessage()); | ||
317 | } | ||
318 | |||
319 | return jsonString; | ||
320 | } | ||
321 | |||
322 | @Override | ||
323 | protected void onCancelled() { | ||
324 | super.onCancelled(); | ||
325 | action.onError(null); | ||
326 | } | ||
327 | |||
328 | @Override | ||
329 | protected void onPostExecute(String jsonString) { | ||
330 | super.onPostExecute(jsonString); | ||
331 | if ((jsonString == null) || (jsonString.isEmpty())) { | ||
332 | action.onError(null); | ||
333 | return; | ||
334 | } | ||
335 | Debug.normal("String body: "+jsonString); | ||
336 | |||
337 | try { | ||
338 | JSONObject jsonObject = new JSONObject(jsonString); | ||
339 | int status = jsonObject.optInt("status"); | ||
340 | if (status == 1){ | ||
341 | action.onSuccess(new JSONObject()); | ||
342 | }else { | ||
343 | action.onError(new Error(jsonObject.optString("message"))); | ||
344 | } | ||
345 | } catch (JSONException e) { | ||
346 | e.printStackTrace(); | ||
347 | } | ||
348 | } | ||
349 | } | ||
350 | |||
351 | |||
265 | public static class Register extends AsyncTask<Void, Void, String>{ | 352 | public static class Register extends AsyncTask<Void, Void, String>{ |
266 | private RegisterInfo registerInfo; | 353 | private RegisterInfo registerInfo; |
267 | private LLAPIManagerListener action; | 354 | private LLAPIManagerListener action; |
268 | 355 | ||
269 | public Register(RegisterInfo registerInfo, LLAPIManagerListener action) { | 356 | public Register(RegisterInfo registerInfo, LLAPIManagerListener action) { |
270 | this.registerInfo = registerInfo; | 357 | this.registerInfo = registerInfo; |
271 | this.action = action; | 358 | this.action = action; |
272 | } | 359 | } |
273 | 360 | ||
274 | @Override | 361 | @Override |
275 | protected void onPreExecute() { | 362 | protected void onPreExecute() { |
276 | super.onPreExecute(); | 363 | super.onPreExecute(); |
277 | } | 364 | } |
278 | 365 | ||
279 | @Override | 366 | @Override |
280 | protected String doInBackground(Void... voids) { | 367 | protected String doInBackground(Void... voids) { |
281 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_REGISTER_INFO); | 368 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_REGISTER_INFO); |
282 | JSONObject jsonObject = new JSONObject(); | 369 | JSONObject jsonObject = new JSONObject(); |
283 | 370 | ||
284 | String token = APIResponse.getInstance().getToken(); | 371 | String token = APIResponse.getInstance().getToken(); |
285 | try { | 372 | try { |
286 | jsonObject.put("username", registerInfo.getUsername()); | 373 | jsonObject.put("username", registerInfo.getUsername()); |
287 | jsonObject.put("password", registerInfo.getPassword()); | 374 | jsonObject.put("password", registerInfo.getPassword()); |
375 | jsonObject.put("password_confirmation", registerInfo.getPassword()); | ||
288 | jsonObject.put("full_name", registerInfo.getFullName()); | 376 | jsonObject.put("full_name", registerInfo.getFullName()); |
289 | jsonObject.put("nickname", registerInfo.getNickname()); | 377 | //jsonObject.put("nickname", registerInfo.getNickname()); |
290 | jsonObject.put("birthday", Utils.dateToStringFormatDayMonthYear(registerInfo.getBirthday())); | 378 | jsonObject.put("birthday", Utils.dateToStringFormatDayMonthYear(registerInfo.getBirthday())); |
291 | jsonObject.put("height", ""+registerInfo.getHeight()); | 379 | jsonObject.put("height", ""+registerInfo.getHeight()); |
292 | jsonObject.put("weight", ""+registerInfo.getWeight()); | 380 | jsonObject.put("weight", ""+registerInfo.getWeight()); |
293 | jsonObject.put("fat_rate", ""+registerInfo.getFatRate()); | 381 | jsonObject.put("fat_rate", ""+registerInfo.getFatRate()); |
294 | jsonObject.put("gender", ""+registerInfo.getGender()); | 382 | jsonObject.put("gender", ""+registerInfo.getGender()); |
295 | jsonObject.put("address", registerInfo.getAddress()); | 383 | //jsonObject.put("address", registerInfo.getAddress()); |
296 | jsonObject.put("desciption", ""); | 384 | //jsonObject.put("desciption", ""); |
297 | jsonObject.put("receive_notification", "0"); | 385 | jsonObject.put("receive_notification", "0"); |
298 | //jsonObject.put("phone", "+84986940999"); | 386 | //jsonObject.put("phone", "+84986940999"); |
299 | jsonObject.put("share_data", "1"); | 387 | jsonObject.put("share_data", "1"); |
300 | jsonObject.put("profile_image", ""+registerInfo.getProfileImage()); | 388 | jsonObject.put("profile_image", ""+registerInfo.getProfileImage()); |
301 | jsonObject.put("delete_flag", "0"); | 389 | //jsonObject.put("delete_flag", "0"); |
302 | jsonObject.put("email", registerInfo.getEmail()); | 390 | jsonObject.put("email", registerInfo.getEmail()); |
303 | jsonObject.put("physical_activity", "0"); | 391 | jsonObject.put("physical_activity", "0"); |
304 | jsonObject.put("remember_me", "1"); | 392 | //jsonObject.put("remember", "1"); |
305 | 393 | ||
306 | Debug.warn("Json data: " + jsonObject.toString()); | 394 | Debug.warn("Json data: " + jsonObject.toString()); |
307 | } catch (JSONException e) { | 395 | } catch (JSONException e) { |
308 | Debug.normal("Error ", e.getMessage()); | 396 | Debug.normal("Error ", e.getMessage()); |
309 | } | 397 | } |
310 | 398 | ||
311 | MediaType JSON | 399 | MediaType JSON |
312 | = MediaType.parse("application/json; charset=utf-8"); | 400 | = MediaType.parse("application/json; charset=utf-8"); |
313 | RequestBody requestBody = RequestBody.create(JSON, jsonObject.toString()); | 401 | RequestBody requestBody = RequestBody.create(JSON, jsonObject.toString()); |
314 | 402 | ||
315 | final Request.Builder request = new Request.Builder() | 403 | final Request.Builder request = new Request.Builder() |
316 | .url(baseUrl) | 404 | .url(baseUrl) |
317 | .header("User-Agent", Utils.getCustomUA()) | 405 | .header("User-Agent", Utils.getCustomUA()) |
318 | .header("Content-Type", "application/json") | 406 | .header("Content-Type", "application/json") |
319 | .post(requestBody); | 407 | .post(requestBody); |
320 | 408 | ||
321 | OkHttpClient httpClient = new OkHttpClient.Builder() | 409 | OkHttpClient httpClient = new OkHttpClient.Builder() |
322 | .readTimeout(30, TimeUnit.SECONDS) | 410 | .readTimeout(30, TimeUnit.SECONDS) |
323 | .writeTimeout(30, TimeUnit.SECONDS) | 411 | .writeTimeout(30, TimeUnit.SECONDS) |
324 | .connectTimeout(30, TimeUnit.SECONDS) | 412 | .connectTimeout(30, TimeUnit.SECONDS) |
325 | .build(); | 413 | .build(); |
326 | 414 | ||
327 | String jsonString = null; | 415 | String jsonString = null; |
328 | try { | 416 | try { |
329 | Response response = httpClient.newCall(request.build()).execute(); | 417 | Response response = httpClient.newCall(request.build()).execute(); |
330 | if (response == null) { | 418 | if (response == null) { |
331 | action.onError(null); | 419 | action.onError(null); |
332 | Debug.error("Response is null"); | 420 | Debug.error("Response is null"); |
333 | return null; | 421 | return null; |
334 | } | 422 | } |
335 | jsonString = getResponseData(response.body()); | 423 | jsonString = getResponseData(response.body()); |
336 | 424 | ||
337 | } catch (IOException e) { | 425 | } catch (IOException e) { |
338 | Debug.normal("Error %s", e.getMessage()); | 426 | Debug.normal("Error %s", e.getMessage()); |
339 | } | 427 | } |
340 | return jsonString; | 428 | return jsonString; |
341 | } | 429 | } |
342 | 430 | ||
343 | @Override | 431 | @Override |
344 | protected void onCancelled() { | 432 | protected void onCancelled() { |
345 | super.onCancelled(); | 433 | super.onCancelled(); |
346 | action.onError(null); | 434 | action.onError(null); |
347 | } | 435 | } |
348 | 436 | ||
349 | @Override | 437 | @Override |
350 | protected void onPostExecute(String jsonString) { | 438 | protected void onPostExecute(String jsonString) { |
351 | super.onPostExecute(jsonString); | 439 | super.onPostExecute(jsonString); |
352 | if ((jsonString == null) || (jsonString.isEmpty())) { | 440 | if ((jsonString == null) || (jsonString.isEmpty())) { |
353 | action.onError(null); | 441 | action.onError(null); |
354 | return; | 442 | return; |
355 | } | 443 | } |
356 | Debug.normal("String body: "+jsonString); | 444 | Debug.normal("String body: "+jsonString); |
357 | 445 | ||
358 | try { | 446 | try { |
359 | JSONObject jsonObject = new JSONObject(jsonString); | 447 | JSONObject jsonObject = new JSONObject(jsonString); |
360 | int status = jsonObject.optInt("status"); | 448 | int status = jsonObject.optInt("status"); |
361 | if (status == 1){ | 449 | if (status == 1){ |
362 | JSONObject object = jsonObject.optJSONObject("result"); | 450 | JSONObject object = jsonObject.optJSONObject("result"); |
363 | JSONObject objUser = object.getJSONObject("user"); | 451 | JSONObject objUser = object.getJSONObject("user"); |
364 | String token = object.optString("token"); | 452 | String token = object.optString("token"); |
365 | APIResponse.getInstance().setToken(token); | 453 | APIResponse.getInstance().setToken(token); |
366 | Debug.normal("Token: "+ token); | 454 | Debug.normal("Token: "+ token); |
367 | action.onSuccess(objUser); | 455 | action.onSuccess(objUser); |
368 | }else { | 456 | }else { |
369 | action.onError(new Error(jsonObject.optString("message"))); | 457 | action.onError(new Error(jsonObject.optString("message"))); |
370 | } | 458 | } |
371 | } catch (JSONException e) { | 459 | } catch (JSONException e) { |
372 | e.printStackTrace(); | 460 | e.printStackTrace(); |
373 | } | 461 | } |
374 | 462 | ||
375 | } | 463 | } |
376 | } | 464 | } |
377 | 465 | ||
378 | private static byte[] convertBitmapToByteArray(Bitmap bitmap) { | 466 | private static byte[] convertBitmapToByteArray(Bitmap bitmap) { |
379 | ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); | 467 | ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); |
380 | bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream); | 468 | bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream); |
381 | byte[] byteArray = byteArrayOutputStream.toByteArray(); | 469 | byte[] byteArray = byteArrayOutputStream.toByteArray(); |
382 | return byteArray; | 470 | return byteArray; |
383 | } | 471 | } |
384 | 472 | ||
385 | public static class ForgetPass extends AsyncTask<Void, Void, String>{ | 473 | public static class ForgetPass extends AsyncTask<Void, Void, String>{ |
386 | private String email; | 474 | private String email; |
387 | private LLAPIManagerListener action; | 475 | private LLAPIManagerListener action; |
388 | 476 | ||
389 | public ForgetPass(String email, LLAPIManagerListener action) { | 477 | public ForgetPass(String email, LLAPIManagerListener action) { |
390 | this.email = email; | 478 | this.email = email; |
391 | this.action = action; | 479 | this.action = action; |
392 | } | 480 | } |
393 | 481 | ||
394 | @Override | 482 | @Override |
395 | protected void onPreExecute() { | 483 | protected void onPreExecute() { |
396 | super.onPreExecute(); | 484 | super.onPreExecute(); |
397 | } | 485 | } |
398 | 486 | ||
399 | @Override | 487 | @Override |
400 | protected String doInBackground(Void... voids) { | 488 | protected String doInBackground(Void... voids) { |
401 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_FORGET_PASS_INFO); | 489 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_FORGET_PASS_INFO); |
402 | JSONObject jsonObject = new JSONObject(); | 490 | JSONObject jsonObject = new JSONObject(); |
403 | try { | 491 | try { |
404 | //Personal info | 492 | //Personal info |
405 | jsonObject.put("email", email); | 493 | jsonObject.put("email", email); |
406 | 494 | ||
407 | Debug.warn("Json data: " + jsonObject.toString()); | 495 | Debug.warn("Json data: " + jsonObject.toString()); |
408 | } catch (JSONException e) { | 496 | } catch (JSONException e) { |
409 | Debug.normal("Error ", e.getMessage()); | 497 | Debug.normal("Error ", e.getMessage()); |
410 | } | 498 | } |
411 | 499 | ||
412 | MediaType JSON | 500 | MediaType JSON |
413 | = MediaType.parse("application/json"); | 501 | = MediaType.parse("application/json"); |
414 | RequestBody requestBody = RequestBody.create(JSON, jsonObject.toString()); | 502 | RequestBody requestBody = RequestBody.create(JSON, jsonObject.toString()); |
415 | 503 | ||
416 | final Request.Builder request = new Request.Builder() | 504 | final Request.Builder request = new Request.Builder() |
417 | .url(baseUrl) | 505 | .url(baseUrl) |
418 | .header("User-Agent", Utils.getCustomUA()) | 506 | .header("User-Agent", Utils.getCustomUA()) |
419 | .header("Content-Type", "application/json") | 507 | .header("Content-Type", "application/json") |
420 | .post(requestBody); | 508 | .post(requestBody); |
421 | 509 | ||
422 | OkHttpClient httpClient = new OkHttpClient.Builder() | 510 | OkHttpClient httpClient = new OkHttpClient.Builder() |
423 | .readTimeout(30, TimeUnit.SECONDS) | 511 | .readTimeout(30, TimeUnit.SECONDS) |
424 | .writeTimeout(30, TimeUnit.SECONDS) | 512 | .writeTimeout(30, TimeUnit.SECONDS) |
425 | .connectTimeout(30, TimeUnit.SECONDS) | 513 | .connectTimeout(30, TimeUnit.SECONDS) |
426 | .build(); | 514 | .build(); |
427 | 515 | ||
428 | String jsonString = null; | 516 | String jsonString = null; |
429 | try { | 517 | try { |
430 | Response response = httpClient.newCall(request.build()).execute(); | 518 | Response response = httpClient.newCall(request.build()).execute(); |
431 | if (response == null) { | 519 | if (response == null) { |
432 | action.onError(null); | 520 | action.onError(null); |
433 | Debug.error("Response is null"); | 521 | Debug.error("Response is null"); |
434 | return null; | 522 | return null; |
435 | } | 523 | } |
436 | jsonString = getResponseData(response.body()); | 524 | jsonString = getResponseData(response.body()); |
437 | 525 | ||
438 | } catch (IOException e) { | 526 | } catch (IOException e) { |
439 | Debug.normal("Error %s", e.getMessage()); | 527 | Debug.normal("Error %s", e.getMessage()); |
440 | } | 528 | } |
441 | return jsonString; | 529 | return jsonString; |
442 | } | 530 | } |
443 | 531 | ||
444 | @Override | 532 | @Override |
445 | protected void onCancelled() { | 533 | protected void onCancelled() { |
446 | super.onCancelled(); | 534 | super.onCancelled(); |
447 | action.onError(null); | 535 | action.onError(null); |
448 | } | 536 | } |
449 | 537 | ||
450 | @Override | 538 | @Override |
451 | protected void onPostExecute(String jsonString) { | 539 | protected void onPostExecute(String jsonString) { |
452 | super.onPostExecute(jsonString); | 540 | super.onPostExecute(jsonString); |
453 | if ((jsonString == null) || (jsonString.isEmpty())) { | 541 | if ((jsonString == null) || (jsonString.isEmpty())) { |
454 | action.onError(null); | 542 | action.onError(null); |
455 | return; | 543 | return; |
456 | } | 544 | } |
457 | Debug.normal("String body: "+jsonString); | 545 | Debug.normal("String body: "+jsonString); |
458 | 546 | ||
459 | try { | 547 | try { |
460 | JSONObject jsonObject = new JSONObject(jsonString); | 548 | JSONObject jsonObject = new JSONObject(jsonString); |
461 | int status = jsonObject.optInt("status"); | 549 | int status = jsonObject.optInt("status"); |
462 | if (status == 1) { | 550 | if (status == 1) { |
463 | action.onSuccess(jsonString); | 551 | action.onSuccess(jsonString); |
464 | } else { | 552 | } else { |
465 | action.onError(new Error(jsonObject.getString("message"))); | 553 | action.onError(new Error(jsonObject.getString("message"))); |
466 | } | 554 | } |
467 | } catch (JSONException e) { | 555 | } catch (JSONException e) { |
468 | action.onError(null); | 556 | action.onError(null); |
469 | } | 557 | } |
470 | } | 558 | } |
471 | 559 | ||
472 | } | 560 | } |
473 | 561 | ||
474 | public static class ForgetPassConfirm extends AsyncTask<Void, Void, String>{ | 562 | public static class ForgetPassConfirm extends AsyncTask<Void, Void, String>{ |
475 | private String email; | 563 | private String email; |
476 | private String codeConfirm; | 564 | private String codeConfirm; |
477 | private LLAPIManagerListener action; | 565 | private LLAPIManagerListener action; |
478 | 566 | ||
479 | public ForgetPassConfirm(String email, String codeConfirm, LLAPIManagerListener action) { | 567 | public ForgetPassConfirm(String email, String codeConfirm, LLAPIManagerListener action) { |
480 | this.email = email; | 568 | this.email = email; |
481 | this.codeConfirm = codeConfirm; | 569 | this.codeConfirm = codeConfirm; |
482 | this.action = action; | 570 | this.action = action; |
483 | } | 571 | } |
484 | 572 | ||
485 | @Override | 573 | @Override |
486 | protected void onPreExecute() { | 574 | protected void onPreExecute() { |
487 | super.onPreExecute(); | 575 | super.onPreExecute(); |
488 | } | 576 | } |
489 | 577 | ||
490 | @Override | 578 | @Override |
491 | protected String doInBackground(Void... voids) { | 579 | protected String doInBackground(Void... voids) { |
492 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_FORGET_PASS_CONFIRM_INFO); | 580 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_FORGET_PASS_CONFIRM_INFO); |
493 | JSONObject jsonObject = new JSONObject(); | 581 | JSONObject jsonObject = new JSONObject(); |
494 | try { | 582 | try { |
495 | //Personal info | 583 | //Personal info |
496 | jsonObject.put("email", email); | 584 | jsonObject.put("email", email); |
497 | jsonObject.put("code_confirm", codeConfirm); | 585 | jsonObject.put("code_confirm", codeConfirm); |
498 | 586 | ||
499 | Debug.warn("Json data: " + jsonObject.toString()); | 587 | Debug.warn("Json data: " + jsonObject.toString()); |
500 | } catch (JSONException e) { | 588 | } catch (JSONException e) { |
501 | Debug.normal("Error ", e.getMessage()); | 589 | Debug.normal("Error ", e.getMessage()); |
502 | } | 590 | } |
503 | 591 | ||
504 | MediaType JSON | 592 | MediaType JSON |
505 | = MediaType.parse("application/json"); | 593 | = MediaType.parse("application/json"); |
506 | RequestBody requestBody = RequestBody.create(JSON, jsonObject.toString()); | 594 | RequestBody requestBody = RequestBody.create(JSON, jsonObject.toString()); |
507 | 595 | ||
508 | final Request.Builder request = new Request.Builder() | 596 | final Request.Builder request = new Request.Builder() |
509 | .url(baseUrl) | 597 | .url(baseUrl) |
510 | .header("User-Agent", Utils.getCustomUA()) | 598 | .header("User-Agent", Utils.getCustomUA()) |
511 | .header("Content-Type", "application/json") | 599 | .header("Content-Type", "application/json") |
512 | .post(requestBody); | 600 | .post(requestBody); |
513 | 601 | ||
514 | OkHttpClient httpClient = new OkHttpClient.Builder() | 602 | OkHttpClient httpClient = new OkHttpClient.Builder() |
515 | .readTimeout(30, TimeUnit.SECONDS) | 603 | .readTimeout(30, TimeUnit.SECONDS) |
516 | .writeTimeout(30, TimeUnit.SECONDS) | 604 | .writeTimeout(30, TimeUnit.SECONDS) |
517 | .connectTimeout(30, TimeUnit.SECONDS) | 605 | .connectTimeout(30, TimeUnit.SECONDS) |
518 | .build(); | 606 | .build(); |
519 | String jsonString = null; | 607 | String jsonString = null; |
520 | try { | 608 | try { |
521 | Response response = httpClient.newCall(request.build()).execute(); | 609 | Response response = httpClient.newCall(request.build()).execute(); |
522 | if (response == null) { | 610 | if (response == null) { |
523 | action.onError(null); | 611 | action.onError(null); |
524 | Debug.error("Response is null"); | 612 | Debug.error("Response is null"); |
525 | return null; | 613 | return null; |
526 | } | 614 | } |
527 | jsonString = getResponseData(response.body()); | 615 | jsonString = getResponseData(response.body()); |
528 | 616 | ||
529 | } catch (IOException e) { | 617 | } catch (IOException e) { |
530 | Debug.normal("Error %s", e.getMessage()); | 618 | Debug.normal("Error %s", e.getMessage()); |
531 | } | 619 | } |
532 | return jsonString; | 620 | return jsonString; |
533 | } | 621 | } |
534 | 622 | ||
535 | @Override | 623 | @Override |
536 | protected void onCancelled() { | 624 | protected void onCancelled() { |
537 | super.onCancelled(); | 625 | super.onCancelled(); |
538 | action.onError(null); | 626 | action.onError(null); |
539 | } | 627 | } |
540 | 628 | ||
541 | @Override | 629 | @Override |
542 | protected void onPostExecute(String jsonString) { | 630 | protected void onPostExecute(String jsonString) { |
543 | super.onPostExecute(jsonString); | 631 | super.onPostExecute(jsonString); |
544 | if ((jsonString == null) || (jsonString.isEmpty())) { | 632 | if ((jsonString == null) || (jsonString.isEmpty())) { |
545 | action.onError(null); | 633 | action.onError(null); |
546 | return; | 634 | return; |
547 | } | 635 | } |
548 | Debug.normal("String body: "+jsonString); | 636 | Debug.normal("String body: "+jsonString); |
549 | 637 | ||
550 | try { | 638 | try { |
551 | JSONObject jsonObject = new JSONObject(jsonString); | 639 | JSONObject jsonObject = new JSONObject(jsonString); |
552 | int status = jsonObject.optInt("status"); | 640 | int status = jsonObject.optInt("status"); |
553 | if (status == 1) { | 641 | if (status == 1) { |
554 | action.onSuccess(jsonString); | 642 | action.onSuccess(jsonString); |
555 | } else { | 643 | } else { |
556 | action.onError(new Error(jsonObject.getString("message"))); | 644 | action.onError(new Error(jsonObject.getString("message"))); |
557 | } | 645 | } |
558 | } catch (JSONException e) { | 646 | } catch (JSONException e) { |
559 | action.onError(null); | 647 | action.onError(null); |
560 | } | 648 | } |
561 | } | 649 | } |
562 | } | 650 | } |
563 | 651 | ||
564 | public static class History extends AsyncTask<Void, Void, String>{ | 652 | public static class History extends AsyncTask<Void, Void, String>{ |
565 | private Date fromDate; | 653 | private Date fromDate; |
566 | private Date toDate; | 654 | private Date toDate; |
567 | private LLAPIManagerListener action; | 655 | private LLAPIManagerListener action; |
568 | 656 | ||
569 | public History(Date fromDate, Date toDate, LLAPIManagerListener action) { | 657 | public History(Date fromDate, Date toDate, LLAPIManagerListener action) { |
570 | this.fromDate = fromDate; | 658 | this.fromDate = fromDate; |
571 | this.toDate = toDate; | 659 | this.toDate = toDate; |
572 | this.action = action; | 660 | this.action = action; |
573 | } | 661 | } |
574 | 662 | ||
575 | @Override | 663 | @Override |
576 | protected void onPreExecute() { | 664 | protected void onPreExecute() { |
577 | super.onPreExecute(); | 665 | super.onPreExecute(); |
578 | } | 666 | } |
579 | 667 | ||
580 | @Override | 668 | @Override |
581 | protected String doInBackground(Void... voids) { | 669 | protected String doInBackground(Void... voids) { |
582 | 670 | ||
583 | String fromStr = Utils.dateToStringFormatYearMonthDay(fromDate); | 671 | String fromStr = Utils.dateToStringFormatYearMonthDay(fromDate); |
584 | String toStr = Utils.dateToStringFormatYearMonthDay(toDate); | 672 | String toStr = Utils.dateToStringFormatYearMonthDay(toDate); |
585 | Debug.normal("Token: "+ APIResponse.getInstance().getToken()); | 673 | Debug.normal("Token: "+ APIResponse.getInstance().getToken()); |
586 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_HISTORE_INFO + "/"+ fromStr +"/"+ toStr); | 674 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_HISTORE_INFO + "/"+ fromStr +"/"+ toStr); |
587 | Debug.normal("URL: "+baseUrl.toString()); | 675 | Debug.normal("URL: "+baseUrl.toString()); |
588 | final Request.Builder request = new Request.Builder() | 676 | final Request.Builder request = new Request.Builder() |
589 | .url(baseUrl) | 677 | .url(baseUrl) |
590 | .header("User-Agent", Utils.getCustomUA()) | 678 | .header("User-Agent", Utils.getCustomUA()) |
591 | .header("Content-Type", "application/json") | 679 | .header("Content-Type", "application/json") |
592 | .addHeader("token", APIResponse.getInstance().getToken()) | 680 | .addHeader("token", APIResponse.getInstance().getToken()) |
593 | .get(); | 681 | .get(); |
594 | 682 | ||
595 | OkHttpClient httpClient = new OkHttpClient.Builder() | 683 | OkHttpClient httpClient = new OkHttpClient.Builder() |
596 | .readTimeout(30, TimeUnit.SECONDS) | 684 | .readTimeout(30, TimeUnit.SECONDS) |
597 | .writeTimeout(30, TimeUnit.SECONDS) | 685 | .writeTimeout(30, TimeUnit.SECONDS) |
598 | .connectTimeout(30, TimeUnit.SECONDS) | 686 | .connectTimeout(30, TimeUnit.SECONDS) |
599 | .build(); | 687 | .build(); |
600 | 688 | ||
601 | String jsonString = null; | 689 | String jsonString = null; |
602 | try { | 690 | try { |
603 | Response response = httpClient.newCall(request.build()).execute(); | 691 | Response response = httpClient.newCall(request.build()).execute(); |
604 | if (response == null) { | 692 | if (response == null) { |
605 | action.onError(null); | 693 | action.onError(null); |
606 | Debug.error("Response is null"); | 694 | Debug.error("Response is null"); |
607 | return null; | 695 | return null; |
608 | } | 696 | } |
609 | jsonString = getResponseData(response.body()); | 697 | jsonString = getResponseData(response.body()); |
610 | 698 | ||
611 | } catch (IOException e) { | 699 | } catch (IOException e) { |
612 | Debug.normal("Error %s", e.getMessage()); | 700 | Debug.normal("Error %s", e.getMessage()); |
613 | } | 701 | } |
614 | return jsonString; | 702 | return jsonString; |
615 | } | 703 | } |
616 | 704 | ||
617 | @Override | 705 | @Override |
618 | protected void onCancelled() { | 706 | protected void onCancelled() { |
619 | super.onCancelled(); | 707 | super.onCancelled(); |
620 | action.onError(null); | 708 | action.onError(null); |
621 | } | 709 | } |
622 | 710 | ||
623 | @Override | 711 | @Override |
624 | protected void onPostExecute(String jsonString) { | 712 | protected void onPostExecute(String jsonString) { |
625 | super.onPostExecute(jsonString); | 713 | super.onPostExecute(jsonString); |
626 | if ((jsonString == null) || (jsonString.isEmpty())) { | 714 | if ((jsonString == null) || (jsonString.isEmpty())) { |
627 | action.onError(null); | 715 | action.onError(null); |
628 | return; | 716 | return; |
629 | } | 717 | } |
630 | Debug.normal("String body: "+jsonString); | 718 | Debug.normal("String body: "+jsonString); |
631 | 719 | ||
632 | try { | 720 | try { |
633 | JSONObject jsonObject = new JSONObject(jsonString); | 721 | JSONObject jsonObject = new JSONObject(jsonString); |
634 | int status = jsonObject.optInt("status"); | 722 | int status = jsonObject.optInt("status"); |
635 | if (status == 1) { | 723 | if (status == 1) { |
636 | action.onSuccess(jsonString); | 724 | action.onSuccess(jsonString); |
637 | } else { | 725 | } else { |
638 | action.onError(new Error(jsonObject.getString("message"))); | 726 | action.onError(new Error(jsonObject.getString("message"))); |
639 | } | 727 | } |
640 | } catch (JSONException e) { | 728 | } catch (JSONException e) { |
641 | action.onError(null); | 729 | action.onError(null); |
642 | } | 730 | } |
643 | } | 731 | } |
644 | } | 732 | } |
645 | 733 | ||
646 | public static class HistoryDetail extends AsyncTask<Void, Void, String>{ | 734 | public static class HistoryDetail extends AsyncTask<Void, Void, String>{ |
647 | private Date fromDate; | 735 | private Date fromDate; |
648 | private Date toDate; | 736 | private Date toDate; |
649 | private LLAPIManagerListener action; | 737 | private LLAPIManagerListener action; |
650 | 738 | ||
651 | public HistoryDetail(Date fromDate, Date toDate, LLAPIManagerListener action) { | 739 | public HistoryDetail(Date fromDate, Date toDate, LLAPIManagerListener action) { |
652 | this.fromDate = fromDate; | 740 | this.fromDate = fromDate; |
653 | this.toDate = toDate; | 741 | this.toDate = toDate; |
654 | this.action = action; | 742 | this.action = action; |
655 | } | 743 | } |
656 | 744 | ||
657 | @Override | 745 | @Override |
658 | protected void onPreExecute() { | 746 | protected void onPreExecute() { |
659 | super.onPreExecute(); | 747 | super.onPreExecute(); |
660 | } | 748 | } |
661 | 749 | ||
662 | @Override | 750 | @Override |
663 | protected String doInBackground(Void... voids) { | 751 | protected String doInBackground(Void... voids) { |
664 | 752 | ||
665 | String fromStr = Utils.dateToStringFormatDayMonthYear(fromDate); | 753 | String fromStr = Utils.dateToStringFormatDayMonthYear(fromDate); |
666 | String toStr = Utils.dateToStringFormatDayMonthYear(toDate); | 754 | String toStr = Utils.dateToStringFormatDayMonthYear(toDate); |
667 | Debug.normal("Token: "+ APIResponse.getInstance().getToken()); | 755 | Debug.normal("Token: "+ APIResponse.getInstance().getToken()); |
668 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_HISTORE_DETAIL_INFO + "/"+ fromStr +"/"+ toStr); | 756 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_HISTORE_DETAIL_INFO + "/"+ fromStr +"/"+ toStr); |
669 | Debug.normal("URL: "+baseUrl.toString()); | 757 | Debug.normal("URL: "+baseUrl.toString()); |
670 | final Request.Builder request = new Request.Builder() | 758 | final Request.Builder request = new Request.Builder() |
671 | .url(baseUrl) | 759 | .url(baseUrl) |
672 | .header("User-Agent", Utils.getCustomUA()) | 760 | .header("User-Agent", Utils.getCustomUA()) |
673 | .header("Content-Type", "application/json") | 761 | .header("Content-Type", "application/json") |
674 | .addHeader("token", APIResponse.getInstance().getToken()) | 762 | .addHeader("token", APIResponse.getInstance().getToken()) |
675 | .get(); | 763 | .get(); |
676 | 764 | ||
677 | OkHttpClient httpClient = new OkHttpClient.Builder() | 765 | OkHttpClient httpClient = new OkHttpClient.Builder() |
678 | .readTimeout(30, TimeUnit.SECONDS) | 766 | .readTimeout(30, TimeUnit.SECONDS) |
679 | .writeTimeout(30, TimeUnit.SECONDS) | 767 | .writeTimeout(30, TimeUnit.SECONDS) |
680 | .connectTimeout(30, TimeUnit.SECONDS) | 768 | .connectTimeout(30, TimeUnit.SECONDS) |
681 | .build(); | 769 | .build(); |
682 | 770 | ||
683 | String jsonString = null; | 771 | String jsonString = null; |
684 | try { | 772 | try { |
685 | Response response = httpClient.newCall(request.build()).execute(); | 773 | Response response = httpClient.newCall(request.build()).execute(); |
686 | if (response == null) { | 774 | if (response == null) { |
687 | action.onError(null); | 775 | action.onError(null); |
688 | Debug.error("Response is null"); | 776 | Debug.error("Response is null"); |
689 | return null; | 777 | return null; |
690 | } | 778 | } |
691 | jsonString = getResponseData(response.body()); | 779 | jsonString = getResponseData(response.body()); |
692 | 780 | ||
693 | } catch (IOException e) { | 781 | } catch (IOException e) { |
694 | Debug.normal("Error %s", e.getMessage()); | 782 | Debug.normal("Error %s", e.getMessage()); |
695 | } | 783 | } |
696 | return jsonString; | 784 | return jsonString; |
697 | } | 785 | } |
698 | 786 | ||
699 | @Override | 787 | @Override |
700 | protected void onCancelled() { | 788 | protected void onCancelled() { |
701 | super.onCancelled(); | 789 | super.onCancelled(); |
702 | action.onError(null); | 790 | action.onError(null); |
703 | } | 791 | } |
704 | 792 | ||
705 | @Override | 793 | @Override |
706 | protected void onPostExecute(String jsonString) { | 794 | protected void onPostExecute(String jsonString) { |
707 | super.onPostExecute(jsonString); | 795 | super.onPostExecute(jsonString); |
708 | if ((jsonString == null) || (jsonString.isEmpty())) { | 796 | if ((jsonString == null) || (jsonString.isEmpty())) { |
709 | action.onError(null); | 797 | action.onError(null); |
710 | return; | 798 | return; |
711 | } | 799 | } |
712 | Debug.normal("String body: "+jsonString); | 800 | Debug.normal("String body: "+jsonString); |
713 | 801 | ||
714 | try { | 802 | try { |
715 | JSONObject jsonObject = new JSONObject(jsonString); | 803 | JSONObject jsonObject = new JSONObject(jsonString); |
716 | int status = jsonObject.optInt("status"); | 804 | int status = jsonObject.optInt("status"); |
717 | if (status == 1) { | 805 | if (status == 1) { |
718 | action.onSuccess(jsonString); | 806 | action.onSuccess(jsonString); |
719 | } else { | 807 | } else { |
720 | action.onError(new Error(jsonObject.getString("message"))); | 808 | action.onError(new Error(jsonObject.getString("message"))); |
721 | } | 809 | } |
722 | } catch (JSONException e) { | 810 | } catch (JSONException e) { |
723 | action.onError(null); | 811 | action.onError(null); |
724 | } | 812 | } |
725 | } | 813 | } |
726 | 814 | ||
727 | } | 815 | } |
728 | 816 | ||
729 | public static class HomePage extends AsyncTask<Void, Void, String>{ | 817 | public static class HomePage extends AsyncTask<Void, Void, String>{ |
730 | private Date date; | 818 | private Date date; |
731 | private Const.STEP_TYPE stepType; | 819 | private Const.STEP_TYPE stepType; |
732 | private LLAPIManagerListener action; | 820 | private LLAPIManagerListener action; |
733 | 821 | ||
734 | public HomePage(Date date, Const.STEP_TYPE stepType, LLAPIManagerListener action) { | 822 | public HomePage(Date date, Const.STEP_TYPE stepType, LLAPIManagerListener action) { |
735 | this.date = date; | 823 | this.date = date; |
736 | this.stepType = stepType; | 824 | this.stepType = stepType; |
737 | this.action = action; | 825 | this.action = action; |
738 | } | 826 | } |
739 | 827 | ||
740 | @Override | 828 | @Override |
741 | protected void onPreExecute() { | 829 | protected void onPreExecute() { |
742 | super.onPreExecute(); | 830 | super.onPreExecute(); |
743 | } | 831 | } |
744 | 832 | ||
745 | @Override | 833 | @Override |
746 | protected String doInBackground(Void... voids) { | 834 | protected String doInBackground(Void... voids) { |
747 | 835 | ||
748 | String dateStr = Utils.dateToStringFormatDayMonthYear(date); | 836 | String dateStr = Utils.dateToStringFormatDayMonthYear(date); |
749 | Debug.normal("Token: "+ APIResponse.getInstance().getToken()); | 837 | Debug.normal("Token: "+ APIResponse.getInstance().getToken()); |
750 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_HOME_INFO + "/"+ stepType.value +"/"+ dateStr); | 838 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_HOME_INFO + "/"+ stepType.value +"/"+ dateStr); |
751 | Debug.normal("URL: "+baseUrl.toString()); | 839 | Debug.normal("URL: "+baseUrl.toString()); |
752 | final Request.Builder request = new Request.Builder() | 840 | final Request.Builder request = new Request.Builder() |
753 | .url(baseUrl) | 841 | .url(baseUrl) |
754 | .header("User-Agent", Utils.getCustomUA()) | 842 | .header("User-Agent", Utils.getCustomUA()) |
755 | .header("Content-Type", "application/json") | 843 | .header("Content-Type", "application/json") |
756 | .addHeader("token", APIResponse.getInstance().getToken()) | 844 | .addHeader("token", APIResponse.getInstance().getToken()) |
757 | .get(); | 845 | .get(); |
758 | 846 | ||
759 | OkHttpClient httpClient = new OkHttpClient.Builder() | 847 | OkHttpClient httpClient = new OkHttpClient.Builder() |
760 | .readTimeout(30, TimeUnit.SECONDS) | 848 | .readTimeout(30, TimeUnit.SECONDS) |
761 | .writeTimeout(30, TimeUnit.SECONDS) | 849 | .writeTimeout(30, TimeUnit.SECONDS) |
762 | .connectTimeout(30, TimeUnit.SECONDS) | 850 | .connectTimeout(30, TimeUnit.SECONDS) |
763 | .build(); | 851 | .build(); |
764 | 852 | ||
765 | String jsonString = null; | 853 | String jsonString = null; |
766 | try { | 854 | try { |
767 | Response response = httpClient.newCall(request.build()).execute(); | 855 | Response response = httpClient.newCall(request.build()).execute(); |
768 | if (response == null) { | 856 | if (response == null) { |
769 | action.onError(null); | 857 | action.onError(null); |
770 | Debug.error("Response is null"); | 858 | Debug.error("Response is null"); |
771 | return null; | 859 | return null; |
772 | } | 860 | } |
773 | jsonString = getResponseData(response.body()); | 861 | jsonString = getResponseData(response.body()); |
774 | 862 | ||
775 | } catch (IOException e) { | 863 | } catch (IOException e) { |
776 | Debug.normal("Error %s", e.getMessage()); | 864 | Debug.normal("Error %s", e.getMessage()); |
777 | } | 865 | } |
778 | return jsonString; | 866 | return jsonString; |
779 | } | 867 | } |
780 | 868 | ||
781 | @Override | 869 | @Override |
782 | protected void onCancelled() { | 870 | protected void onCancelled() { |
783 | super.onCancelled(); | 871 | super.onCancelled(); |
784 | action.onError(null); | 872 | action.onError(null); |
785 | } | 873 | } |
786 | 874 | ||
787 | @Override | 875 | @Override |
788 | protected void onPostExecute(String jsonString) { | 876 | protected void onPostExecute(String jsonString) { |
789 | super.onPostExecute(jsonString); | 877 | super.onPostExecute(jsonString); |
790 | if ((jsonString == null) || (jsonString.isEmpty())) { | 878 | if ((jsonString == null) || (jsonString.isEmpty())) { |
791 | action.onError(null); | 879 | action.onError(null); |
792 | return; | 880 | return; |
793 | } | 881 | } |
794 | Debug.normal("String body: "+jsonString); | 882 | Debug.normal("String body: "+jsonString); |
795 | 883 | ||
796 | try { | 884 | try { |
797 | JSONObject jsonObject = new JSONObject(jsonString); | 885 | JSONObject jsonObject = new JSONObject(jsonString); |
798 | int status = jsonObject.optInt("status"); | 886 | int status = jsonObject.optInt("status"); |
799 | if (status == 1) { | 887 | if (status == 1) { |
800 | action.onSuccess(jsonString); | 888 | action.onSuccess(jsonString); |
801 | } else { | 889 | } else { |
802 | action.onError(new Error(jsonObject.getString("message"))); | 890 | action.onError(new Error(jsonObject.getString("message"))); |
803 | } | 891 | } |
804 | } catch (JSONException e) { | 892 | } catch (JSONException e) { |
805 | action.onError(null); | 893 | action.onError(null); |
806 | } | 894 | } |
807 | } | 895 | } |
808 | 896 | ||
809 | } | 897 | } |
810 | 898 | ||
811 | public static class TopInfo extends AsyncTask<Void, Void, String>{ | 899 | public static class TopInfo extends AsyncTask<Void, Void, String>{ |
812 | private Date date; | 900 | private Date date; |
813 | private Const.STEP_TYPE stepType; | 901 | private Const.STEP_TYPE stepType; |
814 | private LLAPIManagerListener action; | 902 | private LLAPIManagerListener action; |
815 | 903 | ||
816 | public TopInfo(Date date, Const.STEP_TYPE stepType, LLAPIManagerListener action) { | 904 | public TopInfo(Date date, Const.STEP_TYPE stepType, LLAPIManagerListener action) { |
817 | this.date = date; | 905 | this.date = date; |
818 | this.stepType = stepType; | 906 | this.stepType = stepType; |
819 | this.action = action; | 907 | this.action = action; |
820 | } | 908 | } |
821 | 909 | ||
822 | @Override | 910 | @Override |
823 | protected void onPreExecute() { | 911 | protected void onPreExecute() { |
824 | super.onPreExecute(); | 912 | super.onPreExecute(); |
825 | } | 913 | } |
826 | 914 | ||
827 | @Override | 915 | @Override |
828 | protected String doInBackground(Void... voids) { | 916 | protected String doInBackground(Void... voids) { |
829 | 917 | ||
830 | String dateStr = Utils.dateToStringFormatDayMonthYear(date); | 918 | String dateStr = Utils.dateToStringFormatDayMonthYear(date); |
831 | Debug.normal("Token: "+ APIResponse.getInstance().getToken()); | 919 | Debug.normal("Token: "+ APIResponse.getInstance().getToken()); |
832 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_TOP_INFO + "/"+ stepType.value +"/"+ dateStr); | 920 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_TOP_INFO + "/"+ stepType.value +"/"+ dateStr); |
833 | Debug.normal("URL: "+baseUrl.toString()); | 921 | Debug.normal("URL: "+baseUrl.toString()); |
834 | final Request.Builder request = new Request.Builder() | 922 | final Request.Builder request = new Request.Builder() |
835 | .url(baseUrl) | 923 | .url(baseUrl) |
836 | .header("User-Agent", Utils.getCustomUA()) | 924 | .header("User-Agent", Utils.getCustomUA()) |
837 | .header("Content-Type", "application/json") | 925 | .header("Content-Type", "application/json") |
838 | .addHeader("token", APIResponse.getInstance().getToken()) | 926 | .addHeader("token", APIResponse.getInstance().getToken()) |
839 | .get(); | 927 | .get(); |
840 | 928 | ||
841 | OkHttpClient httpClient = new OkHttpClient.Builder() | 929 | OkHttpClient httpClient = new OkHttpClient.Builder() |
842 | .readTimeout(30, TimeUnit.SECONDS) | 930 | .readTimeout(30, TimeUnit.SECONDS) |
843 | .writeTimeout(30, TimeUnit.SECONDS) | 931 | .writeTimeout(30, TimeUnit.SECONDS) |
844 | .connectTimeout(30, TimeUnit.SECONDS) | 932 | .connectTimeout(30, TimeUnit.SECONDS) |
845 | .build(); | 933 | .build(); |
846 | 934 | ||
847 | String jsonString = null; | 935 | String jsonString = null; |
848 | try { | 936 | try { |
849 | Response response = httpClient.newCall(request.build()).execute(); | 937 | Response response = httpClient.newCall(request.build()).execute(); |
850 | if (response == null) { | 938 | if (response == null) { |
851 | action.onError(null); | 939 | action.onError(null); |
852 | Debug.error("Response is null"); | 940 | Debug.error("Response is null"); |
853 | return null; | 941 | return null; |
854 | } | 942 | } |
855 | jsonString = getResponseData(response.body()); | 943 | jsonString = getResponseData(response.body()); |
856 | 944 | ||
857 | } catch (IOException e) { | 945 | } catch (IOException e) { |
858 | Debug.normal("Error %s", e.getMessage()); | 946 | Debug.normal("Error %s", e.getMessage()); |
859 | } | 947 | } |
860 | return jsonString; | 948 | return jsonString; |
861 | } | 949 | } |
862 | 950 | ||
863 | @Override | 951 | @Override |
864 | protected void onCancelled() { | 952 | protected void onCancelled() { |
865 | super.onCancelled(); | 953 | super.onCancelled(); |
866 | action.onError(null); | 954 | action.onError(null); |
867 | } | 955 | } |
868 | 956 | ||
869 | @Override | 957 | @Override |
870 | protected void onPostExecute(String jsonString) { | 958 | protected void onPostExecute(String jsonString) { |
871 | super.onPostExecute(jsonString); | 959 | super.onPostExecute(jsonString); |
872 | if ((jsonString == null) || (jsonString.isEmpty())) { | 960 | if ((jsonString == null) || (jsonString.isEmpty())) { |
873 | action.onError(null); | 961 | action.onError(null); |
874 | return; | 962 | return; |
875 | } | 963 | } |
876 | Debug.normal("String body: "+jsonString); | 964 | Debug.normal("String body: "+jsonString); |
877 | 965 | ||
878 | try { | 966 | try { |
879 | JSONObject jsonObject = new JSONObject(jsonString); | 967 | JSONObject jsonObject = new JSONObject(jsonString); |
880 | int status = jsonObject.optInt("status"); | 968 | int status = jsonObject.optInt("status"); |
881 | if (status == 1) { | 969 | if (status == 1) { |
882 | action.onSuccess(jsonString); | 970 | action.onSuccess(jsonString); |
883 | } else { | 971 | } else { |
884 | action.onError(new Error(jsonObject.getString("message"))); | 972 | action.onError(new Error(jsonObject.getString("message"))); |
885 | } | 973 | } |
886 | } catch (JSONException e) { | 974 | } catch (JSONException e) { |
887 | action.onError(null); | 975 | action.onError(null); |
888 | } | 976 | } |
889 | } | 977 | } |
890 | 978 | ||
891 | } | 979 | } |
892 | 980 | ||
893 | public static class CreateLog extends AsyncTask<Void, Void, String>{ | 981 | public static class CreateLog extends AsyncTask<Void, Void, String>{ |
894 | private int stepCount; | 982 | private int stepCount; |
895 | private Const.STEP_TYPE stepType; | 983 | private Const.STEP_TYPE stepType; |
896 | private Date startTime; | 984 | private Date startTime; |
897 | private Date endTime; | 985 | private Date endTime; |
898 | private LLAPIManagerListener action; | 986 | private LLAPIManagerListener action; |
899 | 987 | ||
900 | public CreateLog(Const.STEP_TYPE stepType, int stepCount, Date startTime, Date endTime, LLAPIManagerListener action) { | 988 | public CreateLog(Const.STEP_TYPE stepType, int stepCount, Date startTime, Date endTime, LLAPIManagerListener action) { |
901 | this.stepCount = stepCount; | 989 | this.stepCount = stepCount; |
902 | this.stepType = stepType; | 990 | this.stepType = stepType; |
903 | this.startTime = startTime; | 991 | this.startTime = startTime; |
904 | this.endTime = endTime; | 992 | this.endTime = endTime; |
905 | this.action = action; | 993 | this.action = action; |
906 | } | 994 | } |
907 | 995 | ||
908 | 996 | ||
909 | @Override | 997 | @Override |
910 | protected void onPreExecute() { | 998 | protected void onPreExecute() { |
911 | super.onPreExecute(); | 999 | super.onPreExecute(); |
912 | } | 1000 | } |
913 | 1001 | ||
914 | @Override | 1002 | @Override |
915 | protected String doInBackground(Void... voids) { | 1003 | protected String doInBackground(Void... voids) { |
916 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_CREATE_LOG_INFO); | 1004 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_CREATE_LOG_INFO); |
917 | JSONObject jsonObject = new JSONObject(); | 1005 | JSONObject jsonObject = new JSONObject(); |
918 | String startT = Utils.convertDate2DateTimeString(startTime); | 1006 | String startT = Utils.convertDate2DateTimeString(startTime); |
919 | String endT = Utils.convertDate2DateTimeString(endTime); | 1007 | String endT = Utils.convertDate2DateTimeString(endTime); |
920 | try { | 1008 | try { |
921 | jsonObject.put("mode", stepType.value); | 1009 | jsonObject.put("mode", stepType.value); |
922 | jsonObject.put("numStep", stepCount); | 1010 | jsonObject.put("numStep", stepCount); |
923 | jsonObject.put("startTime", startT); | 1011 | jsonObject.put("startTime", startT); |
924 | jsonObject.put("endTime", endT); | 1012 | jsonObject.put("endTime", endT); |
925 | 1013 | ||
926 | Debug.warn("Json data: " + jsonObject.toString()); | 1014 | Debug.warn("Json data: " + jsonObject.toString()); |
927 | } catch (JSONException e) { | 1015 | } catch (JSONException e) { |
928 | Debug.normal("Error ", e.getMessage()); | 1016 | Debug.normal("Error ", e.getMessage()); |
929 | } | 1017 | } |
930 | 1018 | ||
931 | MediaType JSON | 1019 | MediaType JSON |
932 | = MediaType.parse("application/json"); | 1020 | = MediaType.parse("application/json"); |
933 | RequestBody requestBody = RequestBody.create(JSON, jsonObject.toString()); | 1021 | RequestBody requestBody = RequestBody.create(JSON, jsonObject.toString()); |
934 | 1022 | ||
935 | final Request.Builder request = new Request.Builder() | 1023 | final Request.Builder request = new Request.Builder() |
936 | .url(baseUrl) | 1024 | .url(baseUrl) |
937 | .header("User-Agent", Utils.getCustomUA()) | 1025 | .header("User-Agent", Utils.getCustomUA()) |
938 | .header("Content-Type", "application/json") | 1026 | .header("Content-Type", "application/json") |
939 | .addHeader("token", APIResponse.getInstance().getToken()) | 1027 | .addHeader("token", APIResponse.getInstance().getToken()) |
940 | .post(requestBody); | 1028 | .post(requestBody); |
941 | 1029 | ||
942 | OkHttpClient httpClient = new OkHttpClient.Builder() | 1030 | OkHttpClient httpClient = new OkHttpClient.Builder() |
943 | .readTimeout(30, TimeUnit.SECONDS) | 1031 | .readTimeout(30, TimeUnit.SECONDS) |
944 | .writeTimeout(30, TimeUnit.SECONDS) | 1032 | .writeTimeout(30, TimeUnit.SECONDS) |
945 | .connectTimeout(30, TimeUnit.SECONDS) | 1033 | .connectTimeout(30, TimeUnit.SECONDS) |
946 | .build(); | 1034 | .build(); |
947 | 1035 | ||
948 | String jsonString = null; | 1036 | String jsonString = null; |
949 | try { | 1037 | try { |
950 | Response response = httpClient.newCall(request.build()).execute(); | 1038 | Response response = httpClient.newCall(request.build()).execute(); |
951 | if (response == null) { | 1039 | if (response == null) { |
952 | action.onError(null); | 1040 | action.onError(null); |
953 | Debug.error("Response is null"); | 1041 | Debug.error("Response is null"); |
954 | return null; | 1042 | return null; |
955 | } | 1043 | } |
956 | jsonString = getResponseData(response.body()); | 1044 | jsonString = getResponseData(response.body()); |
957 | 1045 | ||
958 | } catch (IOException e) { | 1046 | } catch (IOException e) { |
959 | Debug.normal("Error %s", e.getMessage()); | 1047 | Debug.normal("Error %s", e.getMessage()); |
960 | } | 1048 | } |
961 | return jsonString; | 1049 | return jsonString; |
962 | } | 1050 | } |
963 | 1051 | ||
964 | @Override | 1052 | @Override |
965 | protected void onCancelled() { | 1053 | protected void onCancelled() { |
966 | super.onCancelled(); | 1054 | super.onCancelled(); |
967 | action.onError(null); | 1055 | action.onError(null); |
968 | } | 1056 | } |
969 | 1057 | ||
970 | @Override | 1058 | @Override |
971 | protected void onPostExecute(String jsonString) { | 1059 | protected void onPostExecute(String jsonString) { |
972 | super.onPostExecute(jsonString); | 1060 | super.onPostExecute(jsonString); |
973 | if ((jsonString == null) || (jsonString.isEmpty())) { | 1061 | if ((jsonString == null) || (jsonString.isEmpty())) { |
974 | action.onError(null); | 1062 | action.onError(null); |
975 | return; | 1063 | return; |
976 | } | 1064 | } |
977 | Debug.normal("String body: "+jsonString); | 1065 | Debug.normal("String body: "+jsonString); |
978 | 1066 | ||
979 | try { | 1067 | try { |
980 | JSONObject jsonObject = new JSONObject(jsonString); | 1068 | JSONObject jsonObject = new JSONObject(jsonString); |
981 | int status = jsonObject.optInt("status"); | 1069 | int status = jsonObject.optInt("status"); |
982 | if (status == 1) { | 1070 | if (status == 1) { |
983 | action.onSuccess(jsonString); | 1071 | action.onSuccess(jsonString); |
984 | } else { | 1072 | } else { |
985 | action.onError(new Error(jsonObject.getString("message"))); | 1073 | action.onError(new Error(jsonObject.getString("message"))); |
986 | } | 1074 | } |
987 | } catch (JSONException e) { | 1075 | } catch (JSONException e) { |
988 | action.onError(null); | 1076 | action.onError(null); |
989 | } | 1077 | } |
990 | } | 1078 | } |
991 | } | 1079 | } |
992 | 1080 | ||
993 | public static class RefreshToken extends AsyncTask<Void, Void, String>{ | 1081 | public static class RefreshToken extends AsyncTask<Void, Void, String>{ |
994 | private Context context; | 1082 | private Context context; |
995 | private int userId; | 1083 | private int userId; |
996 | private LLAPIManagerListener action; | 1084 | private LLAPIManagerListener action; |
997 | 1085 | ||
998 | public RefreshToken(Context context, int userId, LLAPIManagerListener action) { | 1086 | public RefreshToken(Context context, int userId, LLAPIManagerListener action) { |
999 | this.context = context; | 1087 | this.context = context; |
1000 | this.userId = userId; | 1088 | this.userId = userId; |
1001 | this.action = action; | 1089 | this.action = action; |
1002 | } | 1090 | } |
1003 | 1091 | ||
1004 | @Override | 1092 | @Override |
1005 | protected void onPreExecute() { | 1093 | protected void onPreExecute() { |
1006 | super.onPreExecute(); | 1094 | super.onPreExecute(); |
1007 | } | 1095 | } |
1008 | 1096 | ||
1009 | @Override | 1097 | @Override |
1010 | protected String doInBackground(Void... voids) { | 1098 | protected String doInBackground(Void... voids) { |
1011 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_REFESH_TOKEN_INFO); | 1099 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_REFESH_TOKEN_INFO); |
1012 | JSONObject jsonObject = new JSONObject(); | 1100 | JSONObject jsonObject = new JSONObject(); |
1013 | try { | 1101 | try { |
1014 | //Personal info | 1102 | //Personal info |
1015 | jsonObject.put("userId", userId); | 1103 | jsonObject.put("userId", userId); |
1016 | 1104 | ||
1017 | Debug.warn("Json data: " + jsonObject.toString()); | 1105 | Debug.warn("Json data: " + jsonObject.toString()); |
1018 | } catch (JSONException e) { | 1106 | } catch (JSONException e) { |
1019 | Debug.normal("Error ", e.getMessage()); | 1107 | Debug.normal("Error ", e.getMessage()); |
1020 | } | 1108 | } |
1021 | 1109 | ||
1022 | MediaType JSON | 1110 | MediaType JSON |
1023 | = MediaType.parse("application/json"); | 1111 | = MediaType.parse("application/json"); |
1024 | RequestBody requestBody = RequestBody.create(JSON, jsonObject.toString()); | 1112 | RequestBody requestBody = RequestBody.create(JSON, jsonObject.toString()); |
1025 | 1113 | ||
1026 | final Request.Builder request = new Request.Builder() | 1114 | final Request.Builder request = new Request.Builder() |
1027 | .url(baseUrl) | 1115 | .url(baseUrl) |
1028 | .header("User-Agent", Utils.getCustomUA()) | 1116 | .header("User-Agent", Utils.getCustomUA()) |
1029 | .header("Content-Type", "application/json") | 1117 | .header("Content-Type", "application/json") |
1030 | .post(requestBody); | 1118 | .post(requestBody); |
1031 | 1119 | ||
1032 | OkHttpClient httpClient = new OkHttpClient.Builder() | 1120 | OkHttpClient httpClient = new OkHttpClient.Builder() |
1033 | .readTimeout(30, TimeUnit.SECONDS) | 1121 | .readTimeout(30, TimeUnit.SECONDS) |
1034 | .writeTimeout(30, TimeUnit.SECONDS) | 1122 | .writeTimeout(30, TimeUnit.SECONDS) |
1035 | .connectTimeout(30, TimeUnit.SECONDS) | 1123 | .connectTimeout(30, TimeUnit.SECONDS) |
1036 | .build(); | 1124 | .build(); |
1037 | 1125 | ||
1038 | String jsonString = null; | 1126 | String jsonString = null; |
1039 | try { | 1127 | try { |
1040 | Response response = httpClient.newCall(request.build()).execute(); | 1128 | Response response = httpClient.newCall(request.build()).execute(); |
1041 | if (response == null) { | 1129 | if (response == null) { |
1042 | action.onError(null); | 1130 | action.onError(null); |
1043 | Debug.error("Response is null"); | 1131 | Debug.error("Response is null"); |
1044 | return null; | 1132 | return null; |
1045 | } | 1133 | } |
1046 | jsonString = getResponseData(response.body()); | 1134 | jsonString = getResponseData(response.body()); |
1047 | 1135 | ||
1048 | } catch (IOException e) { | 1136 | } catch (IOException e) { |
1049 | Debug.normal("Error %s", e.getMessage()); | 1137 | Debug.normal("Error %s", e.getMessage()); |
1050 | } | 1138 | } |
1051 | return jsonString; | 1139 | return jsonString; |
1052 | } | 1140 | } |
1053 | 1141 | ||
1054 | @Override | 1142 | @Override |
1055 | protected void onCancelled() { | 1143 | protected void onCancelled() { |
1056 | super.onCancelled(); | 1144 | super.onCancelled(); |
1057 | action.onError(null); | 1145 | action.onError(null); |
1058 | } | 1146 | } |
1059 | 1147 | ||
1060 | @Override | 1148 | @Override |
1061 | protected void onPostExecute(String jsonString) { | 1149 | protected void onPostExecute(String jsonString) { |
1062 | super.onPostExecute(jsonString); | 1150 | super.onPostExecute(jsonString); |
1063 | if ((jsonString == null) || (jsonString.isEmpty())) { | 1151 | if ((jsonString == null) || (jsonString.isEmpty())) { |
1064 | action.onError(null); | 1152 | action.onError(null); |
1065 | return; | 1153 | return; |
1066 | } | 1154 | } |
1067 | Debug.normal("String body: "+jsonString); | 1155 | Debug.normal("String body: "+jsonString); |
1068 | 1156 | ||
1069 | try { | 1157 | try { |
1070 | JSONObject jsonObject = new JSONObject(jsonString); | 1158 | JSONObject jsonObject = new JSONObject(jsonString); |
1071 | int status = jsonObject.optInt("status"); | 1159 | int status = jsonObject.optInt("status"); |
1072 | if (status == 1) { | 1160 | if (status == 1) { |
1073 | JSONArray tokenArr = jsonObject.optJSONArray("result"); | 1161 | JSONArray tokenArr = jsonObject.optJSONArray("result"); |
1074 | String token = tokenArr.get(0).toString(); | 1162 | String token = tokenArr.get(0).toString(); |
1075 | Debug.normal("Refresh Token: "+ token); | 1163 | Debug.normal("Refresh Token: "+ token); |
1076 | // save data | 1164 | // save data |
1077 | Setting.setUserDataSharepre(context, Setting.TOKEN_SHAREPRE, token); | 1165 | Setting.setUserDataSharepre(context, Setting.TOKEN_SHAREPRE, token); |
1078 | APIResponse.getInstance().setToken(token); | 1166 | APIResponse.getInstance().setToken(token); |
1079 | action.onSuccess(jsonString); | 1167 | action.onSuccess(jsonString); |
1080 | } else { | 1168 | } else { |
1081 | action.onError(new Error(jsonObject.getString("message"))); | 1169 | action.onError(new Error(jsonObject.getString("message"))); |
1082 | } | 1170 | } |
1083 | } catch (JSONException e) { | 1171 | } catch (JSONException e) { |
1084 | action.onError(null); | 1172 | action.onError(null); |
1085 | } | 1173 | } |
1086 | } | 1174 | } |
1087 | } | 1175 | } |
1088 | 1176 | ||
1089 | public static class GetNews extends AsyncTask<Void, Void, String>{ | 1177 | public static class GetNews extends AsyncTask<Void, Void, String>{ |
1090 | private Date date; | 1178 | private Date date; |
1091 | private LLAPIManagerListener action; | 1179 | private LLAPIManagerListener action; |
1092 | 1180 | ||
1093 | public GetNews(Date date, LLAPIManagerListener action) { | 1181 | public GetNews(Date date, LLAPIManagerListener action) { |
1094 | this.date = date; | 1182 | this.date = date; |
1095 | this.action = action; | 1183 | this.action = action; |
1096 | } | 1184 | } |
1097 | 1185 | ||
1098 | @Override | 1186 | @Override |
1099 | protected void onPreExecute() { | 1187 | protected void onPreExecute() { |
1100 | super.onPreExecute(); | 1188 | super.onPreExecute(); |
1101 | } | 1189 | } |
1102 | 1190 | ||
1103 | @Override | 1191 | @Override |
1104 | protected String doInBackground(Void... voids) { | 1192 | protected String doInBackground(Void... voids) { |
1105 | String fromStr = Utils.dateToStringFormatDayMonthYear(date); | 1193 | String fromStr = Utils.dateToStringFormatDayMonthYear(date); |
1106 | Debug.normal("Token: "+ APIResponse.getInstance().getToken()); | 1194 | Debug.normal("Token: "+ APIResponse.getInstance().getToken()); |
1107 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_GET_NEWS_INFO + "/"+ fromStr); | 1195 | HttpUrl baseUrl = HttpUrl.parse(URL_ROOT + URL_GET_NEWS_INFO + "/"+ fromStr); |
1108 | Debug.normal("URL: "+baseUrl.toString()); | 1196 | Debug.normal("URL: "+baseUrl.toString()); |
1109 | final Request.Builder request = new Request.Builder() | 1197 | final Request.Builder request = new Request.Builder() |
1110 | .url(baseUrl) | 1198 | .url(baseUrl) |
1111 | .header("User-Agent", Utils.getCustomUA()) | 1199 | .header("User-Agent", Utils.getCustomUA()) |
1112 | .header("Content-Type", "application/json") | 1200 | .header("Content-Type", "application/json") |
1113 | .addHeader("token", APIResponse.getInstance().getToken()) | 1201 | .addHeader("token", APIResponse.getInstance().getToken()) |
1114 | .get(); | 1202 | .get(); |
1115 | 1203 | ||
1116 | OkHttpClient httpClient = new OkHttpClient.Builder() | 1204 | OkHttpClient httpClient = new OkHttpClient.Builder() |
1117 | .readTimeout(30, TimeUnit.SECONDS) | 1205 | .readTimeout(30, TimeUnit.SECONDS) |
1118 | .writeTimeout(30, TimeUnit.SECONDS) | 1206 | .writeTimeout(30, TimeUnit.SECONDS) |
1119 | .connectTimeout(30, TimeUnit.SECONDS) | 1207 | .connectTimeout(30, TimeUnit.SECONDS) |
1120 | .build(); | 1208 | .build(); |
1121 | 1209 | ||
1122 | String jsonString = null; | 1210 | String jsonString = null; |
1123 | try { | 1211 | try { |
1124 | Response response = httpClient.newCall(request.build()).execute(); | 1212 | Response response = httpClient.newCall(request.build()).execute(); |
1125 | if (response == null) { | 1213 | if (response == null) { |
1126 | action.onError(null); | 1214 | action.onError(null); |
1127 | Debug.error("Response is null"); | 1215 | Debug.error("Response is null"); |
1128 | return null; | 1216 | return null; |
1129 | } | 1217 | } |
1130 | jsonString = getResponseData(response.body()); | 1218 | jsonString = getResponseData(response.body()); |
1131 | 1219 | ||
1132 | } catch (IOException e) { | 1220 | } catch (IOException e) { |
1133 | Debug.normal("Error %s", e.getMessage()); | 1221 | Debug.normal("Error %s", e.getMessage()); |
1134 | } | 1222 | } |
1135 | return jsonString; | 1223 | return jsonString; |
1136 | } | 1224 | } |
1137 | 1225 | ||
1138 | @Override | 1226 | @Override |
1139 | protected void onCancelled() { | 1227 | protected void onCancelled() { |
1140 | super.onCancelled(); | 1228 | super.onCancelled(); |
1141 | action.onError(null); | 1229 | action.onError(null); |
1142 | } | 1230 | } |
1143 | 1231 | ||
1144 | @Override | 1232 | @Override |
1145 | protected void onPostExecute(String jsonString) { | 1233 | protected void onPostExecute(String jsonString) { |
1146 | super.onPostExecute(jsonString); | 1234 | super.onPostExecute(jsonString); |
1147 | if ((jsonString == null) || (jsonString.isEmpty())) { | 1235 | if ((jsonString == null) || (jsonString.isEmpty())) { |
1148 | action.onError(null); | 1236 | action.onError(null); |
1149 | return; | 1237 | return; |
1150 | } | 1238 | } |
1151 | Debug.normal("String body: "+jsonString); | 1239 | Debug.normal("String body: "+jsonString); |
1152 | 1240 | ||
1153 | try { | 1241 | try { |
1154 | JSONObject jsonObject = new JSONObject(jsonString); | 1242 | JSONObject jsonObject = new JSONObject(jsonString); |
1155 | int status = jsonObject.optInt("status"); | 1243 | int status = jsonObject.optInt("status"); |
1156 | if (status == 1) { | 1244 | if (status == 1) { |
1157 | // save data | 1245 | // save data |
1158 | action.onSuccess(jsonString); | 1246 | action.onSuccess(jsonString); |
1159 | } else { | 1247 | } else { |
1160 | action.onError(new Error(jsonObject.getString("message"))); | 1248 | action.onError(new Error(jsonObject.getString("message"))); |
1161 | } | 1249 | } |
1162 | } catch (JSONException e) { | 1250 | } catch (JSONException e) { |
1163 | action.onError(null); | 1251 | action.onError(null); |
1164 | } | 1252 | } |
1165 | } | 1253 | } |
1166 | } | 1254 | } |
1167 | 1255 | ||
1168 | public static Bitmap getBitmapFromAsset(Context context, String filePath) { | 1256 | public static Bitmap getBitmapFromAsset(Context context, String filePath) { |
1169 | AssetManager assetManager = context.getAssets(); | 1257 | AssetManager assetManager = context.getAssets(); |
1170 | InputStream istr; | 1258 | InputStream istr; |
1171 | Bitmap bitmap = null; | 1259 | Bitmap bitmap = null; |
1172 | try { | 1260 | try { |
1173 | istr = assetManager.open(filePath); | 1261 | istr = assetManager.open(filePath); |
1174 | bitmap = BitmapFactory.decodeStream(istr); | 1262 | bitmap = BitmapFactory.decodeStream(istr); |
1175 | } catch (IOException e) { | 1263 | } catch (IOException e) { |
1176 | Debug.normal("error: %s", e.getMessage()); | 1264 | Debug.normal("error: %s", e.getMessage()); |
1177 | } | 1265 | } |
1178 | return bitmap; | 1266 | return bitmap; |
1179 | } | 1267 | } |
1180 | 1268 | ||
1181 | public static String getResponseData(ResponseBody response) { | 1269 | public static String getResponseData(ResponseBody response) { |
1182 | 1270 | ||
1183 | String unzipString = ""; | 1271 | String unzipString = ""; |
1184 | try { | 1272 | try { |
1185 | unzipString = response.string(); | 1273 | unzipString = response.string(); |
1186 | Debug.normal("RESPONSE: "+unzipString); | 1274 | Debug.normal("RESPONSE: "+unzipString); |
1187 | } catch (IOException e) { | 1275 | } catch (IOException e) { |
1188 | e.printStackTrace(); | 1276 | e.printStackTrace(); |
1189 | } | 1277 | } |
1190 | return unzipString; | 1278 | return unzipString; |
1191 | } | 1279 | } |
1192 | 1280 | ||
1281 | |||
1282 | public static void writeToFile(String data) | ||
1283 | { | ||
1284 | String path = | ||
1285 | Environment.getExternalStorageDirectory() + File.separator + "yourFolder"; | ||
1286 | // Create the folder. | ||
1287 | File folder = new File(path); | ||
1288 | folder.mkdirs(); | ||
1289 | |||
1290 | // Create the file. | ||
1291 | File file = new File(folder, "config.txt"); | ||
1292 | // Save your stream, don't forget to flush() it before closing it. | ||
1293 | |||
1294 | try | ||
1295 | { | ||
1296 | file.createNewFile(); | ||
1297 | FileOutputStream fOut = new FileOutputStream(file); | ||
1298 | OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); | ||
1299 | myOutWriter.append(data); | ||
1300 | |||
1301 | myOutWriter.close(); | ||
1302 | |||
1303 | fOut.flush(); | ||
1304 | fOut.close(); |
app/src/main/java/com/dinhcv/lifelogpedometer/portal/RequestPostImage.java
File was created | 1 | package com.dinhcv.lifelogpedometer.portal; | |
2 | |||
3 | /** | ||
4 | * Created by Administrator on 25/12/2017. | ||
5 | */ | ||
6 | import android.util.Log; | ||
7 | |||
8 | import java.io.BufferedReader; | ||
9 | import java.io.BufferedWriter; | ||
10 | import java.io.IOException; | ||
11 | import java.io.InputStreamReader; | ||
12 | import java.io.OutputStream; | ||
13 | import java.io.OutputStreamWriter; | ||
14 | import java.net.HttpURLConnection; | ||
15 | import java.net.URL; | ||
16 | |||
17 | /** | ||
18 | * class to make Http RequestPostImage to the web | ||
19 | */ | ||
20 | public class RequestPostImage { | ||
21 | |||
22 | private static final String TAG = RequestPostImage.class.getSimpleName(); | ||
23 | |||
24 | public static String post(String serverUrl,String dataToSend){ | ||
25 | try { | ||
26 | URL url = new URL(serverUrl); | ||
27 | HttpURLConnection con = (HttpURLConnection) url.openConnection(); | ||
28 | //set timeout of 30 seconds | ||
29 | con.setConnectTimeout(1000 * 30); | ||
30 | con.setReadTimeout(1000 * 30); | ||
31 | //method | ||
32 | con.setRequestMethod("POST"); | ||
33 | con.setDoOutput(true); | ||
34 | |||
35 | OutputStream os = con.getOutputStream(); | ||
36 | BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os,"UTF-8")); | ||
37 | |||
38 | //make request | ||
39 | writer.write(dataToSend); | ||
40 | writer.flush(); | ||
41 | writer.close(); | ||
42 | os.close(); | ||
43 | |||
44 | //get the response | ||
45 | int responseCode = con.getResponseCode(); | ||
46 | |||
47 | if(responseCode == HttpURLConnection.HTTP_OK){ | ||
48 | //read the response | ||
49 | StringBuilder sb = new StringBuilder(); | ||
50 | |||
51 | BufferedReader reader = new BufferedReader( | ||
52 | new InputStreamReader(con.getInputStream())); | ||
53 | String line; | ||
54 | |||
55 | //loop through the response from the server | ||
56 | while ((line = reader.readLine()) != null){ | ||
57 | sb.append(line).append("\n"); | ||
58 | } | ||
59 | |||
60 | //return the response | ||
61 | return sb.toString(); | ||
62 | }else{ | ||
63 | Log.e(TAG,"ERROR - Invalid response code from server "+ responseCode); | ||
64 | return null; | ||
65 | } | ||
66 | |||
67 | } catch (IOException e) { | ||
68 | e.printStackTrace(); | ||
69 | Log.e(TAG,"ERROR "+e); | ||
70 | return null; | ||
71 | } | ||
72 | } | ||
73 | } |
app/src/main/res/drawable/add_ic.PNG
app/src/main/res/layout/activity_register.xml
1 | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | 1 | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" |
2 | xmlns:tools="http://schemas.android.com/tools" | 2 | xmlns:tools="http://schemas.android.com/tools" |
3 | android:layout_width="match_parent" | 3 | android:layout_width="match_parent" |
4 | android:layout_height="match_parent" | 4 | android:layout_height="match_parent" |
5 | android:gravity="center_horizontal" | 5 | android:gravity="center_horizontal" |
6 | android:orientation="vertical" | 6 | android:orientation="vertical" |
7 | android:background="@drawable/bg" | ||
7 | tools:context="com.dinhcv.lifelogpedometer.activity.LoginActivity"> | 8 | tools:context="com.dinhcv.lifelogpedometer.activity.LoginActivity"> |
8 | 9 | ||
9 | <include layout="@layout/layout_toolbar" /> | 10 | <include layout="@layout/layout_toolbar" /> |
10 | 11 | ||
11 | <ScrollView | 12 | <ScrollView |
12 | android:id="@+id/login_form" | 13 | android:id="@+id/login_form" |
13 | android:layout_width="match_parent" | 14 | android:layout_width="match_parent" |
14 | android:layout_height="match_parent" | 15 | android:layout_height="match_parent" |
15 | android:layout_above="@+id/ll_bot" | 16 | android:layout_above="@+id/ll_bot" |
16 | android:layout_below="@+id/ll_toolBar"> | 17 | android:layout_below="@+id/ll_toolBar"> |
17 | 18 | ||
18 | <LinearLayout | 19 | <LinearLayout |
19 | android:id="@+id/email_login_form" | 20 | android:id="@+id/email_login_form" |
20 | android:layout_width="match_parent" | 21 | android:layout_width="match_parent" |
21 | android:layout_height="wrap_content" | 22 | android:layout_height="wrap_content" |
22 | android:background="@color/background_main" | ||
23 | android:orientation="vertical" | 23 | android:orientation="vertical" |
24 | android:paddingTop="30dp"> | 24 | android:paddingTop="30dp"> |
25 | 25 | ||
26 | <LinearLayout | 26 | <LinearLayout |
27 | android:layout_width="match_parent" | 27 | android:layout_width="match_parent" |
28 | android:layout_height="wrap_content" | 28 | android:layout_height="wrap_content" |
29 | android:orientation="horizontal" | 29 | android:orientation="horizontal" |
30 | android:paddingLeft="10dp"> | 30 | android:paddingLeft="10dp"> |
31 | 31 | ||
32 | <de.hdodenhof.circleimageview.CircleImageView | 32 | <de.hdodenhof.circleimageview.CircleImageView |
33 | xmlns:app="http://schemas.android.com/apk/res-auto" | 33 | xmlns:app="http://schemas.android.com/apk/res-auto" |
34 | android:id="@+id/profile_image" | 34 | android:id="@+id/profile_image" |
35 | android:layout_width="@dimen/add_img_height" | 35 | android:layout_width="@dimen/add_img_height" |
36 | android:layout_height="@dimen/add_img_height" | 36 | android:layout_height="@dimen/add_img_height" |
37 | android:src="@drawable/add_ic" | 37 | android:src="@drawable/add_ic" |
38 | app:civ_border_width="2dp" | 38 | app:civ_border_width="2dp" |
39 | app:civ_border_color="#FF000000"/> | 39 | app:civ_border_color="#FFFFFF"/> |
40 | 40 | ||
41 | <LinearLayout | 41 | <LinearLayout |
42 | android:layout_width="match_parent" | 42 | android:layout_width="match_parent" |
43 | android:layout_height="wrap_content" | 43 | android:layout_height="wrap_content" |
44 | android:layout_marginTop="10dp" | 44 | android:layout_marginTop="10dp" |
45 | android:orientation="vertical" | 45 | android:orientation="vertical" |
46 | android:paddingLeft="10dp" | 46 | android:paddingLeft="10dp" |
47 | android:paddingRight="20dp"> | 47 | android:paddingRight="20dp"> |
48 | 48 | ||
49 | <TextView | 49 | <TextView |
50 | style="@style/text_content_style" | 50 | style="@style/text_content_style" |
51 | android:layout_width="match_parent" | 51 | android:layout_width="match_parent" |
52 | android:layout_height="wrap_content" | 52 | android:layout_height="wrap_content" |
53 | android:text="@string/username" /> | 53 | android:text="@string/username" /> |
54 | 54 | ||
55 | <EditText | 55 | <EditText |
56 | android:id="@+id/edt_user" | 56 | android:id="@+id/edt_user" |
57 | style="@style/edit_text_single_line" | 57 | style="@style/edit_text_single_line" |
58 | android:layout_width="match_parent" | 58 | android:layout_width="match_parent" |
59 | android:layout_height="wrap_content" | 59 | android:layout_height="wrap_content" |
60 | android:layout_marginTop="8dp" | 60 | android:layout_marginTop="8dp" |
61 | android:gravity="left" | 61 | android:gravity="left" |
62 | android:hint="" | 62 | android:hint="" |
63 | android:padding="8dp" /> | 63 | android:padding="8dp" /> |
64 | 64 | ||
65 | </LinearLayout> | 65 | </LinearLayout> |
66 | 66 | ||
67 | </LinearLayout> | 67 | </LinearLayout> |
68 | 68 | ||
69 | <LinearLayout | 69 | <LinearLayout |
70 | android:layout_width="match_parent" | 70 | android:layout_width="match_parent" |
71 | android:layout_height="wrap_content" | 71 | android:layout_height="wrap_content" |
72 | android:layout_marginTop="10dp" | 72 | android:layout_marginTop="10dp" |
73 | android:orientation="vertical" | 73 | android:orientation="vertical" |
74 | android:paddingLeft="20dp" | 74 | android:paddingLeft="20dp" |
75 | android:paddingRight="20dp"> | 75 | android:paddingRight="20dp"> |
76 | 76 | ||
77 | <TextView | 77 | <TextView |
78 | style="@style/text_content_style" | 78 | style="@style/text_content_style" |
79 | android:layout_width="match_parent" | 79 | android:layout_width="match_parent" |
80 | android:layout_height="wrap_content" | 80 | android:layout_height="wrap_content" |
81 | android:text="@string/name" /> | 81 | android:text="@string/name" /> |
82 | 82 | ||
83 | <EditText | 83 | <EditText |
84 | android:id="@+id/edt_name" | 84 | android:id="@+id/edt_name" |
85 | style="@style/edit_text_single_line" | 85 | style="@style/edit_text_single_line" |
86 | android:layout_width="match_parent" | 86 | android:layout_width="match_parent" |
87 | android:layout_height="wrap_content" | 87 | android:layout_height="wrap_content" |
88 | android:layout_marginTop="8dp" | 88 | android:layout_marginTop="8dp" |
89 | android:gravity="left" | 89 | android:gravity="left" |
90 | android:hint="" | 90 | android:hint="" |
91 | android:padding="8dp" /> | 91 | android:padding="8dp" /> |
92 | 92 | ||
93 | </LinearLayout> | 93 | </LinearLayout> |
94 | 94 | ||
95 | <LinearLayout | 95 | <LinearLayout |
96 | android:layout_width="match_parent" | 96 | android:layout_width="match_parent" |
97 | android:layout_height="wrap_content" | 97 | android:layout_height="wrap_content" |
98 | android:layout_marginTop="10dp" | 98 | android:layout_marginTop="10dp" |
99 | android:orientation="vertical" | 99 | android:orientation="vertical" |
100 | android:paddingLeft="20dp" | 100 | android:paddingLeft="20dp" |
101 | android:paddingRight="20dp"> | 101 | android:paddingRight="20dp"> |
102 | 102 | ||
103 | <TextView | 103 | <TextView |
104 | style="@style/text_content_style" | 104 | style="@style/text_content_style" |
105 | android:layout_width="match_parent" | 105 | android:layout_width="match_parent" |
106 | android:layout_height="wrap_content" | 106 | android:layout_height="wrap_content" |
107 | android:text="@string/nickname" /> | 107 | android:text="@string/nickname" /> |
108 | 108 | ||
109 | <EditText | 109 | <EditText |
110 | android:id="@+id/edt_nickName" | 110 | android:id="@+id/edt_nickName" |
111 | style="@style/edit_text_single_line" | 111 | style="@style/edit_text_single_line" |
112 | android:layout_width="match_parent" | 112 | android:layout_width="match_parent" |
113 | android:layout_height="wrap_content" | 113 | android:layout_height="wrap_content" |
114 | android:layout_marginTop="8dp" | 114 | android:layout_marginTop="8dp" |
115 | android:gravity="left" | 115 | android:gravity="left" |
116 | android:hint="" | 116 | android:hint="" |
117 | android:padding="8dp" /> | 117 | android:padding="8dp" /> |
118 | 118 | ||
119 | </LinearLayout> | 119 | </LinearLayout> |
120 | 120 | ||
121 | <LinearLayout | 121 | <LinearLayout |
122 | android:layout_width="match_parent" | 122 | android:layout_width="match_parent" |
123 | android:layout_height="wrap_content" | 123 | android:layout_height="wrap_content" |
124 | android:layout_marginTop="10dp" | 124 | android:layout_marginTop="10dp" |
125 | android:orientation="vertical" | 125 | android:orientation="vertical" |
126 | android:paddingLeft="20dp" | 126 | android:paddingLeft="20dp" |
127 | android:paddingRight="20dp"> | 127 | android:paddingRight="20dp"> |
128 | 128 | ||
129 | <TextView | 129 | <TextView |
130 | style="@style/text_content_style" | 130 | style="@style/text_content_style" |
131 | android:layout_width="match_parent" | 131 | android:layout_width="match_parent" |
132 | android:layout_height="wrap_content" | 132 | android:layout_height="wrap_content" |
133 | android:text="@string/email" /> | 133 | android:text="@string/email" /> |
134 | 134 | ||
135 | <EditText | 135 | <EditText |
136 | android:id="@+id/edt_email" | 136 | android:id="@+id/edt_email" |
137 | style="@style/edit_text_single_line" | 137 | style="@style/edit_text_single_line" |
138 | android:layout_width="match_parent" | 138 | android:layout_width="match_parent" |
139 | android:layout_height="wrap_content" | 139 | android:layout_height="wrap_content" |
140 | android:layout_marginTop="8dp" | 140 | android:layout_marginTop="8dp" |
141 | android:gravity="left" | 141 | android:gravity="left" |
142 | android:hint="" | 142 | android:hint="" |
143 | android:inputType="textEmailAddress" | 143 | android:inputType="textEmailAddress" |
144 | android:padding="8dp" /> | 144 | android:padding="8dp" /> |
145 | 145 | ||
146 | </LinearLayout> | 146 | </LinearLayout> |
147 | 147 | ||
148 | <LinearLayout | 148 | <LinearLayout |
149 | android:layout_width="match_parent" | 149 | android:layout_width="match_parent" |
150 | android:layout_height="wrap_content" | 150 | android:layout_height="wrap_content" |
151 | android:layout_marginTop="10dp" | 151 | android:layout_marginTop="10dp" |
152 | android:orientation="vertical" | 152 | android:orientation="vertical" |
153 | android:paddingLeft="20dp" | 153 | android:paddingLeft="20dp" |
154 | android:paddingRight="20dp"> | 154 | android:paddingRight="20dp"> |
155 | 155 | ||
156 | <TextView | 156 | <TextView |
157 | style="@style/text_content_style" | 157 | style="@style/text_content_style" |
158 | android:layout_width="match_parent" | 158 | android:layout_width="match_parent" |
159 | android:layout_height="wrap_content" | 159 | android:layout_height="wrap_content" |
160 | android:text="@string/password" /> | 160 | android:text="@string/password" /> |
161 | 161 | ||
162 | <EditText | 162 | <EditText |
163 | android:id="@+id/edt_password" | 163 | android:id="@+id/edt_password" |
164 | style="@style/edit_text_single_line" | 164 | style="@style/edit_text_single_line" |
165 | android:layout_width="match_parent" | 165 | android:layout_width="match_parent" |
166 | android:layout_height="wrap_content" | 166 | android:layout_height="wrap_content" |
167 | android:layout_marginTop="8dp" | 167 | android:layout_marginTop="8dp" |
168 | android:gravity="left" | 168 | android:gravity="left" |
169 | android:hint="" | 169 | android:hint="" |
170 | android:inputType="textPassword" | 170 | android:inputType="textPassword" |
171 | android:padding="8dp" /> | 171 | android:padding="8dp" /> |
172 | 172 | ||
173 | </LinearLayout> | 173 | </LinearLayout> |
174 | 174 | ||
175 | <LinearLayout | 175 | <LinearLayout |
176 | android:layout_width="match_parent" | 176 | android:layout_width="match_parent" |
177 | android:layout_height="wrap_content" | 177 | android:layout_height="wrap_content" |
178 | android:layout_marginTop="10dp" | 178 | android:layout_marginTop="10dp" |
179 | android:orientation="vertical" | 179 | android:orientation="vertical" |
180 | android:paddingLeft="20dp" | 180 | android:paddingLeft="20dp" |
181 | android:paddingRight="20dp"> | 181 | android:paddingRight="20dp"> |
182 | 182 | ||
183 | <TextView | 183 | <TextView |
184 | style="@style/text_content_style" | 184 | style="@style/text_content_style" |
185 | android:layout_width="match_parent" | 185 | android:layout_width="match_parent" |
186 | android:layout_height="wrap_content" | 186 | android:layout_height="wrap_content" |
187 | android:text="@string/confirm_pass" /> | 187 | android:text="@string/confirm_pass" /> |
188 | 188 | ||
189 | <EditText | 189 | <EditText |
190 | android:id="@+id/edt_confirmPass" | 190 | android:id="@+id/edt_confirmPass" |
191 | style="@style/edit_text_single_line" | 191 | style="@style/edit_text_single_line" |
192 | android:layout_width="match_parent" | 192 | android:layout_width="match_parent" |
193 | android:layout_height="wrap_content" | 193 | android:layout_height="wrap_content" |
194 | android:layout_marginTop="8dp" | 194 | android:layout_marginTop="8dp" |
195 | android:gravity="left" | 195 | android:gravity="left" |
196 | android:hint="" | 196 | android:hint="" |
197 | android:padding="8dp" | 197 | android:padding="8dp" |
198 | android:inputType="textPassword"/> | 198 | android:inputType="textPassword"/> |
199 | 199 | ||
200 | </LinearLayout> | 200 | </LinearLayout> |
201 | 201 | ||
202 | <LinearLayout | 202 | <LinearLayout |
203 | android:layout_width="match_parent" | 203 | android:layout_width="match_parent" |
204 | android:layout_height="wrap_content" | 204 | android:layout_height="wrap_content" |
205 | android:layout_marginTop="10dp" | 205 | android:layout_marginTop="10dp" |
206 | android:orientation="vertical" | 206 | android:orientation="vertical" |
207 | android:paddingLeft="20dp" | 207 | android:paddingLeft="20dp" |
208 | android:paddingRight="20dp"> | 208 | android:paddingRight="20dp"> |
209 | 209 | ||
210 | <TextView | 210 | <TextView |
211 | style="@style/text_content_style" | 211 | style="@style/text_content_style" |
212 | android:layout_width="match_parent" | 212 | android:layout_width="match_parent" |
213 | android:layout_height="wrap_content" | 213 | android:layout_height="wrap_content" |
214 | android:text="@string/sex" /> | 214 | android:text="@string/sex" /> |
215 | 215 | ||
216 | <RelativeLayout | 216 | <RelativeLayout |
217 | android:id="@+id/rl_sex" | 217 | android:id="@+id/rl_sex" |
218 | style="@style/edit_text_single_line" | 218 | style="@style/edit_text_single_line" |
219 | android:layout_width="match_parent" | 219 | android:layout_width="match_parent" |
220 | android:layout_height="wrap_content" | 220 | android:layout_height="wrap_content" |
221 | android:orientation="horizontal" | 221 | android:orientation="horizontal" |
222 | android:padding="12dp"> | 222 | android:padding="12dp"> |
223 | 223 | ||
224 | <TextView | 224 | <TextView |
225 | android:id="@+id/tv_sex" | 225 | android:id="@+id/tv_sex" |
226 | style="@style/text_edtext_style" | 226 | style="@style/text_edtext_style" |
227 | android:layout_width="wrap_content" | 227 | android:layout_width="wrap_content" |
228 | android:layout_height="wrap_content" | 228 | android:layout_height="wrap_content" |
229 | android:text="@string/please_select" /> | 229 | android:text="@string/please_select" /> |
230 | 230 | ||
231 | <ImageView | 231 | <ImageView |
232 | android:id="@+id/img_expan_1" | 232 | android:id="@+id/img_expan_1" |
233 | android:layout_width="@dimen/image_down" | 233 | android:layout_width="@dimen/image_down" |
234 | android:layout_height="@dimen/image_down" | 234 | android:layout_height="@dimen/image_down" |
235 | android:layout_alignParentRight="true" | 235 | android:layout_alignParentRight="true" |
236 | android:src="@drawable/ic_down" /> | 236 | android:src="@drawable/ic_down" /> |
237 | 237 | ||
238 | </RelativeLayout> | 238 | </RelativeLayout> |
239 | 239 | ||
240 | </LinearLayout> | 240 | </LinearLayout> |
241 | 241 | ||
242 | <LinearLayout | 242 | <LinearLayout |
243 | android:layout_width="match_parent" | 243 | android:layout_width="match_parent" |
244 | android:layout_height="wrap_content" | 244 | android:layout_height="wrap_content" |
245 | android:layout_marginTop="10dp" | 245 | android:layout_marginTop="10dp" |
246 | android:orientation="vertical" | 246 | android:orientation="vertical" |
247 | android:paddingLeft="20dp" | 247 | android:paddingLeft="20dp" |
248 | android:paddingRight="20dp"> | 248 | android:paddingRight="20dp"> |
249 | 249 | ||
250 | <TextView | 250 | <TextView |
251 | style="@style/text_content_style" | 251 | style="@style/text_content_style" |
252 | android:layout_width="match_parent" | 252 | android:layout_width="match_parent" |
253 | android:layout_height="wrap_content" | 253 | android:layout_height="wrap_content" |
254 | android:text="@string/birthday" /> | 254 | android:text="@string/birthday" /> |
255 | 255 | ||
256 | <RelativeLayout | 256 | <RelativeLayout |
257 | android:id="@+id/rl_birthday" | 257 | android:id="@+id/rl_birthday" |
258 | style="@style/edit_text_single_line" | 258 | style="@style/edit_text_single_line" |
259 | android:layout_width="match_parent" | 259 | android:layout_width="match_parent" |
260 | android:layout_height="wrap_content" | 260 | android:layout_height="wrap_content" |
261 | android:orientation="horizontal" | 261 | android:orientation="horizontal" |
262 | android:padding="12dp"> | 262 | android:padding="12dp"> |
263 | 263 | ||
264 | <TextView | 264 | <TextView |
265 | android:id="@+id/tv_birthday" | 265 | android:id="@+id/tv_birthday" |
266 | style="@style/text_edtext_style" | 266 | style="@style/text_edtext_style" |
267 | android:layout_width="wrap_content" | 267 | android:layout_width="wrap_content" |
268 | android:layout_height="wrap_content" | 268 | android:layout_height="wrap_content" |
269 | android:text="@string/please_select" /> | 269 | android:text="@string/please_select" /> |
270 | 270 | ||
271 | <ImageView | 271 | <ImageView |
272 | android:layout_width="@dimen/image_down" | 272 | android:layout_width="@dimen/image_down" |
273 | android:layout_height="@dimen/image_down" | 273 | android:layout_height="@dimen/image_down" |
274 | android:layout_alignParentRight="true" | 274 | android:layout_alignParentRight="true" |
275 | android:src="@drawable/ic_down" /> | 275 | android:src="@drawable/ic_down" /> |
276 | 276 | ||
277 | </RelativeLayout> | 277 | </RelativeLayout> |
278 | 278 | ||
279 | </LinearLayout> | 279 | </LinearLayout> |
280 | 280 | ||
281 | <LinearLayout | 281 | <LinearLayout |
282 | android:layout_width="match_parent" | 282 | android:layout_width="match_parent" |
283 | android:layout_height="wrap_content" | 283 | android:layout_height="wrap_content" |
284 | android:layout_marginTop="10dp" | 284 | android:layout_marginTop="10dp" |
285 | android:orientation="vertical" | 285 | android:orientation="vertical" |
286 | android:paddingLeft="20dp" | 286 | android:paddingLeft="20dp" |
287 | android:paddingRight="20dp"> | 287 | android:paddingRight="20dp"> |
288 | 288 | ||
289 | <TextView | 289 | <TextView |
290 | style="@style/text_content_style" | 290 | style="@style/text_content_style" |
291 | android:layout_width="match_parent" | 291 | android:layout_width="match_parent" |
292 | android:layout_height="wrap_content" | 292 | android:layout_height="wrap_content" |
293 | android:text="@string/height" /> | 293 | android:text="@string/height" /> |
294 | 294 | ||
295 | <LinearLayout | 295 | <LinearLayout |
296 | android:layout_width="match_parent" | 296 | android:layout_width="match_parent" |
297 | android:layout_height="wrap_content" | 297 | android:layout_height="wrap_content" |
298 | android:orientation="horizontal" | 298 | android:orientation="horizontal" |
299 | android:layout_marginTop="8dp" | 299 | android:layout_marginTop="8dp" |
300 | android:gravity="center_vertical" | 300 | android:gravity="center_vertical" |
301 | android:weightSum="100"> | 301 | android:weightSum="100"> |
302 | 302 | ||
303 | <EditText | 303 | <EditText |
304 | android:id="@+id/edt_height" | 304 | android:id="@+id/edt_height" |
305 | style="@style/edit_text_single_line" | 305 | style="@style/edit_text_single_line" |
306 | android:layout_width="0dp" | 306 | android:layout_width="0dp" |
307 | android:layout_height="wrap_content" | 307 | android:layout_height="wrap_content" |
308 | android:layout_weight="50" | 308 | android:layout_weight="50" |
309 | android:gravity="left" | 309 | android:gravity="left" |
310 | android:hint="" | 310 | android:hint="" |
311 | android:padding="8dp" | 311 | android:padding="8dp" |
312 | android:inputType="number"/> | 312 | android:inputType="number"/> |
313 | 313 | ||
314 | <TextView | 314 | <TextView |
315 | android:layout_width="wrap_content" | 315 | android:layout_width="wrap_content" |
316 | android:layout_height="wrap_content" | 316 | android:layout_height="wrap_content" |
317 | android:text="@string/cm" | 317 | android:text="@string/cm" |
318 | android:paddingLeft="10dp" | 318 | android:paddingLeft="10dp" |
319 | style="@style/text_content_style" /> | 319 | style="@style/text_content_style" /> |
320 | 320 | ||
321 | </LinearLayout> | 321 | </LinearLayout> |
322 | 322 | ||
323 | 323 | ||
324 | </LinearLayout> | 324 | </LinearLayout> |
325 | 325 | ||
326 | <LinearLayout | 326 | <LinearLayout |
327 | android:layout_width="match_parent" | 327 | android:layout_width="match_parent" |
328 | android:layout_height="wrap_content" | 328 | android:layout_height="wrap_content" |
329 | android:layout_marginTop="10dp" | 329 | android:layout_marginTop="10dp" |
330 | android:orientation="vertical" | 330 | android:orientation="vertical" |
331 | android:paddingLeft="20dp" | 331 | android:paddingLeft="20dp" |
332 | android:paddingRight="20dp"> | 332 | android:paddingRight="20dp"> |
333 | 333 | ||
334 | <TextView | 334 | <TextView |
335 | style="@style/text_content_style" | 335 | style="@style/text_content_style" |
336 | android:layout_width="match_parent" | 336 | android:layout_width="match_parent" |
337 | android:layout_height="wrap_content" | 337 | android:layout_height="wrap_content" |
338 | android:text="@string/weight" /> | 338 | android:text="@string/weight" /> |
339 | 339 | ||
340 | <LinearLayout | 340 | <LinearLayout |
341 | android:layout_width="match_parent" | 341 | android:layout_width="match_parent" |
342 | android:layout_height="wrap_content" | 342 | android:layout_height="wrap_content" |
343 | android:orientation="horizontal" | 343 | android:orientation="horizontal" |
344 | android:layout_marginTop="8dp" | 344 | android:layout_marginTop="8dp" |
345 | android:gravity="center_vertical" | 345 | android:gravity="center_vertical" |
346 | android:weightSum="100"> | 346 | android:weightSum="100"> |
347 | 347 | ||
348 | <EditText | 348 | <EditText |
349 | android:id="@+id/edt_weight" | 349 | android:id="@+id/edt_weight" |
350 | style="@style/edit_text_single_line" | 350 | style="@style/edit_text_single_line" |
351 | android:layout_width="0dp" | 351 | android:layout_width="0dp" |
352 | android:layout_height="wrap_content" | 352 | android:layout_height="wrap_content" |
353 | android:layout_weight="50" | 353 | android:layout_weight="50" |
354 | android:gravity="left" | 354 | android:gravity="left" |
355 | android:hint="" | 355 | android:hint="" |
356 | android:padding="8dp" | 356 | android:padding="8dp" |
357 | android:inputType="number" /> | 357 | android:inputType="number" /> |
358 | 358 | ||
359 | <TextView | 359 | <TextView |
360 | android:layout_width="wrap_content" | 360 | android:layout_width="wrap_content" |
361 | android:layout_height="wrap_content" | 361 | android:layout_height="wrap_content" |
362 | android:text="@string/kg" | 362 | android:text="@string/kg" |
363 | android:paddingLeft="10dp" | 363 | android:paddingLeft="10dp" |
364 | style="@style/text_content_style" /> | 364 | style="@style/text_content_style" /> |
365 | </LinearLayout> | 365 | </LinearLayout> |
366 | 366 | ||
367 | </LinearLayout> | 367 | </LinearLayout> |
368 | 368 | ||
369 | <LinearLayout | 369 | <LinearLayout |
370 | android:layout_width="match_parent" | 370 | android:layout_width="match_parent" |
371 | android:layout_height="wrap_content" | 371 | android:layout_height="wrap_content" |
372 | android:layout_marginTop="10dp" | 372 | android:layout_marginTop="10dp" |
373 | android:orientation="vertical" | 373 | android:orientation="vertical" |
374 | android:paddingLeft="20dp" | 374 | android:paddingLeft="20dp" |
375 | android:paddingRight="20dp"> | 375 | android:paddingRight="20dp"> |
376 | 376 | ||
377 | <TextView | 377 | <TextView |
378 | style="@style/text_content_style" | 378 | style="@style/text_content_style" |
379 | android:layout_width="match_parent" | 379 | android:layout_width="match_parent" |
380 | android:layout_height="wrap_content" | 380 | android:layout_height="wrap_content" |
381 | android:text="@string/body_fat_percent" /> | 381 | android:text="@string/body_fat_percent" /> |
382 | 382 | ||
383 | <LinearLayout | 383 | <LinearLayout |
384 | android:layout_width="match_parent" | 384 | android:layout_width="match_parent" |
385 | android:layout_height="wrap_content" | 385 | android:layout_height="wrap_content" |
386 | android:orientation="horizontal" | 386 | android:orientation="horizontal" |
387 | android:layout_marginTop="8dp" | 387 | android:layout_marginTop="8dp" |
388 | android:gravity="center_vertical" | 388 | android:gravity="center_vertical" |
389 | android:weightSum="100"> | 389 | android:weightSum="100"> |
390 | 390 | ||
391 | <EditText | 391 | <EditText |
392 | android:id="@+id/edt_bodyFat" | 392 | android:id="@+id/edt_bodyFat" |
393 | style="@style/edit_text_single_line" | 393 | style="@style/edit_text_single_line" |
394 | android:layout_width="0dp" | 394 | android:layout_width="0dp" |
395 | android:layout_height="wrap_content" | 395 | android:layout_height="wrap_content" |
396 | android:layout_weight="50" | 396 | android:layout_weight="50" |
397 | android:gravity="left" | 397 | android:gravity="left" |
398 | android:hint="" | 398 | android:hint="" |
399 | android:padding="8dp" | 399 | android:padding="8dp" |
400 | android:inputType="number" /> | 400 | android:inputType="number" /> |
401 | 401 | ||
402 | <TextView | 402 | <TextView |
403 | android:layout_width="wrap_content" | 403 | android:layout_width="wrap_content" |
404 | android:layout_height="wrap_content" | 404 | android:layout_height="wrap_content" |
405 | android:text="@string/percen" | 405 | android:text="@string/percen" |
406 | android:paddingLeft="10dp" | 406 | android:paddingLeft="10dp" |
407 | style="@style/text_content_style" | 407 | style="@style/text_content_style" |
408 | /> | 408 | /> |
409 | </LinearLayout> | 409 | </LinearLayout> |
410 | 410 | ||
411 | </LinearLayout> | 411 | </LinearLayout> |
412 | 412 | ||
413 | <LinearLayout | 413 | <LinearLayout |
414 | android:layout_width="match_parent" | 414 | android:layout_width="match_parent" |
415 | android:layout_height="wrap_content" | 415 | android:layout_height="wrap_content" |
416 | android:layout_marginTop="10dp" | 416 | android:layout_marginTop="10dp" |
417 | android:orientation="vertical" | 417 | android:orientation="vertical" |
418 | android:paddingLeft="20dp" | 418 | android:paddingLeft="20dp" |
419 | android:paddingRight="20dp"> | 419 | android:paddingRight="20dp"> |
420 | 420 | ||
421 | <TextView | 421 | <TextView |
422 | style="@style/text_content_style" | 422 | style="@style/text_content_style" |
423 | android:layout_width="match_parent" | 423 | android:layout_width="match_parent" |
424 | android:layout_height="wrap_content" | 424 | android:layout_height="wrap_content" |
425 | android:text="@string/level_active" /> | 425 | android:text="@string/level_active" /> |
426 | 426 | ||
427 | </LinearLayout> | 427 | </LinearLayout> |
428 | 428 | ||
429 | <LinearLayout | 429 | <LinearLayout |
430 | android:layout_width="match_parent" | 430 | android:layout_width="match_parent" |
431 | android:layout_height="wrap_content" | 431 | android:layout_height="wrap_content" |
432 | android:orientation="horizontal" | 432 | android:orientation="horizontal" |
433 | android:weightSum="90" | 433 | android:weightSum="90" |
434 | android:layout_margin="20dp"> | 434 | android:layout_margin="20dp"> |
435 | 435 | ||
436 | <LinearLayout | 436 | <LinearLayout |
437 | android:id="@+id/ll_low" | 437 | android:id="@+id/ll_low" |
438 | android:layout_width="0dp" | 438 | android:layout_width="0dp" |
439 | android:layout_height="wrap_content" | 439 | android:layout_height="wrap_content" |
440 | android:background="@drawable/left_unselected_lev_bg" | 440 | android:background="@drawable/left_unselected_lev_bg" |
441 | android:layout_weight="30" | 441 | android:layout_weight="30" |
442 | android:gravity="center" | 442 | android:gravity="center" |
443 | android:padding="12dp"> | 443 | android:padding="12dp"> |
444 | 444 | ||
445 | <TextView | 445 | <TextView |
446 | android:id="@+id/tv_low" | 446 | android:id="@+id/tv_low" |
447 | android:layout_width="wrap_content" | 447 | android:layout_width="wrap_content" |
448 | android:layout_height="wrap_content" | 448 | android:layout_height="wrap_content" |
449 | android:text="@string/low" | 449 | android:text="@string/low" |
450 | android:textColor="@color/black"/> | 450 | android:textColor="@color/black"/> |
451 | 451 | ||
452 | </LinearLayout> | 452 | </LinearLayout> |
453 | 453 | ||
454 | <LinearLayout | 454 | <LinearLayout |
455 | android:id="@+id/ll_mid" | 455 | android:id="@+id/ll_mid" |
456 | android:layout_width="0dp" | 456 | android:layout_width="0dp" |
457 | android:layout_height="wrap_content" | 457 | android:layout_height="wrap_content" |
458 | android:background="@drawable/mid_unselected_lev_bg" | 458 | android:background="@drawable/mid_unselected_lev_bg" |
459 | android:layout_weight="30" | 459 | android:layout_weight="30" |
460 | android:padding="12dp" | 460 | android:padding="12dp" |
461 | android:gravity="center"> | 461 | android:gravity="center"> |
462 | 462 | ||
463 | <TextView | 463 | <TextView |
464 | android:id="@+id/tv_mid" | 464 | android:id="@+id/tv_mid" |
465 | android:layout_width="wrap_content" | 465 | android:layout_width="wrap_content" |
466 | android:layout_height="wrap_content" | 466 | android:layout_height="wrap_content" |
467 | android:text="@string/low" | 467 | android:text="@string/low" |
468 | android:textColor="@color/black"/> | 468 | android:textColor="@color/black"/> |
469 | 469 | ||
470 | </LinearLayout> | 470 | </LinearLayout> |
471 | 471 | ||
472 | <LinearLayout | 472 | <LinearLayout |
473 | android:id="@+id/ll_hight" | 473 | android:id="@+id/ll_hight" |
474 | android:layout_width="0dp" | 474 | android:layout_width="0dp" |
475 | android:layout_height="wrap_content" | 475 | android:layout_height="wrap_content" |
476 | android:background="@drawable/right_unselected_lev_bg" | 476 | android:background="@drawable/right_unselected_lev_bg" |
477 | android:layout_weight="30" | 477 | android:layout_weight="30" |
478 | android:padding="12dp" | 478 | android:padding="12dp" |
479 | android:gravity="center"> | 479 | android:gravity="center"> |
480 | 480 | ||
481 | <TextView | 481 | <TextView |
482 | android:id="@+id/tv_hight" | 482 | android:id="@+id/tv_hight" |
483 | android:layout_width="wrap_content" | 483 | android:layout_width="wrap_content" |
484 | android:layout_height="wrap_content" | 484 | android:layout_height="wrap_content" |
485 | android:text="@string/low" | 485 | android:text="@string/low" |
486 | android:textColor="@color/black"/> | 486 | android:textColor="@color/black"/> |
487 | 487 | ||
488 | </LinearLayout> | 488 | </LinearLayout> |
489 | 489 | ||
490 | </LinearLayout> | 490 | </LinearLayout> |
491 | 491 | ||
492 | <LinearLayout | 492 | <LinearLayout |
493 | android:layout_width="match_parent" | 493 | android:layout_width="match_parent" |
494 | android:layout_height="wrap_content" | 494 | android:layout_height="wrap_content" |
495 | android:layout_marginTop="10dp" | 495 | android:layout_marginTop="10dp" |
496 | android:orientation="vertical" | 496 | android:orientation="vertical" |
497 | android:paddingLeft="20dp" | 497 | android:paddingLeft="20dp" |
498 | android:paddingRight="20dp"> | 498 | android:paddingRight="20dp"> |
499 | 499 | ||
500 | <TextView | 500 | <TextView |
501 | style="@style/text_content_style" | 501 | style="@style/text_content_style" |
502 | android:layout_width="match_parent" | 502 | android:layout_width="match_parent" |
503 | android:layout_height="wrap_content" | 503 | android:layout_height="wrap_content" |
504 | android:text="@string/address" /> | 504 | android:text="@string/address" /> |
505 | 505 | ||
506 | <RelativeLayout | 506 | <RelativeLayout |
507 | android:id="@+id/rl_address" | 507 | android:id="@+id/rl_address" |
508 | style="@style/edit_text_single_line" | 508 | style="@style/edit_text_single_line" |
509 | android:layout_width="match_parent" | 509 | android:layout_width="match_parent" |
510 | android:layout_height="wrap_content" | 510 | android:layout_height="wrap_content" |
511 | android:orientation="horizontal" | 511 | android:orientation="horizontal" |
512 | android:padding="12dp"> | 512 | android:padding="12dp"> |
513 | 513 | ||
514 | <TextView | 514 | <TextView |
515 | android:id="@+id/tv_address" | 515 | android:id="@+id/tv_address" |
516 | style="@style/text_edtext_style" | 516 | style="@style/text_edtext_style" |
517 | android:layout_width="wrap_content" | 517 | android:layout_width="wrap_content" |
518 | android:layout_height="wrap_content" | 518 | android:layout_height="wrap_content" |
519 | android:text="@string/please_select" /> | 519 | android:text="@string/please_select" /> |
520 | 520 | ||
521 | <ImageView | 521 | <ImageView |
522 | android:layout_width="@dimen/image_down" | 522 | android:layout_width="@dimen/image_down" |
523 | android:layout_height="@dimen/image_down" | 523 | android:layout_height="@dimen/image_down" |
524 | android:layout_alignParentRight="true" | 524 | android:layout_alignParentRight="true" |
525 | android:src="@drawable/ic_down" /> | 525 | android:src="@drawable/ic_down" /> |
526 | 526 | ||
527 | </RelativeLayout> | 527 | </RelativeLayout> |
528 | 528 | ||
529 | </LinearLayout> | 529 | </LinearLayout> |
530 | 530 | ||
531 | <LinearLayout | 531 | <LinearLayout |
532 | android:layout_width="match_parent" | 532 | android:layout_width="match_parent" |
533 | android:layout_height="wrap_content" | 533 | android:layout_height="wrap_content" |
534 | android:layout_marginTop="10dp" | 534 | android:layout_marginTop="10dp" |
535 | android:orientation="vertical" | 535 | android:orientation="vertical" |
536 | android:paddingLeft="20dp" | 536 | android:paddingLeft="20dp" |
537 | android:paddingRight="20dp"> | 537 | android:paddingRight="20dp"> |
538 | 538 | ||
539 | <TextView | 539 | <TextView |
540 | style="@style/text_content_style" | 540 | style="@style/text_content_style" |
541 | android:layout_width="match_parent" | 541 | android:layout_width="match_parent" |
542 | android:layout_height="wrap_content" | 542 | android:layout_height="wrap_content" |
543 | android:text="@string/comment" /> | 543 | android:text="@string/comment" /> |
544 | 544 | ||
545 | <EditText | 545 | <EditText |
546 | android:id="@+id/edt_comment" | 546 | android:id="@+id/edt_comment" |
547 | style="@style/edit_text_multi_line" | 547 | style="@style/edit_text_multi_line" |
548 | android:layout_width="match_parent" | 548 | android:layout_width="match_parent" |
549 | android:layout_height="wrap_content" | 549 | android:layout_height="wrap_content" |
550 | android:layout_marginTop="8dp" | 550 | android:layout_marginTop="8dp" |
551 | android:gravity="left" | 551 | android:gravity="left" |
552 | android:hint="" | 552 | android:hint="" |
553 | android:padding="8dp" /> | 553 | android:padding="8dp" /> |
554 | 554 | ||
555 | </LinearLayout> | 555 | </LinearLayout> |
556 | 556 | ||
557 | <LinearLayout | 557 | <LinearLayout |
558 | android:layout_width="match_parent" | 558 | android:layout_width="match_parent" |
559 | android:layout_height="wrap_content" | 559 | android:layout_height="wrap_content" |
560 | android:layout_marginTop="30dp" | 560 | android:layout_marginTop="30dp" |
561 | android:orientation="vertical" | 561 | android:orientation="vertical" |
562 | android:paddingLeft="50dp" | 562 | android:paddingLeft="50dp" |
563 | android:paddingRight="50dp" | 563 | android:paddingRight="50dp" |
564 | android:layout_marginBottom="10dp"> | 564 | android:layout_marginBottom="10dp"> |
565 | 565 | ||
566 | <Button | 566 | <Button |
567 | android:id="@+id/btn_register" | 567 | android:id="@+id/btn_register" |
568 | style="@style/btn_login_style" | 568 | style="@style/btn_login_style" |
569 | android:layout_width="match_parent" | 569 | android:layout_width="match_parent" |
570 | android:layout_height="wrap_content" | 570 | android:layout_height="wrap_content" |
571 | android:layout_marginLeft="30dp" | 571 | android:layout_marginLeft="30dp" |
572 | android:layout_marginRight="30dp" | 572 | android:layout_marginRight="30dp" |
573 | android:layout_marginTop="8dp" | 573 | android:layout_marginTop="8dp" |
574 | android:gravity="center" | 574 | android:gravity="center" |
575 | android:text="@string/register_button" | 575 | android:text="@string/register_button" |
576 | android:textColor="@color/white" /> | 576 | android:textColor="@color/white" /> |
577 | 577 | ||
578 | </LinearLayout> | 578 | </LinearLayout> |
579 | 579 | ||
580 | 580 | ||
581 | </LinearLayout> | 581 | </LinearLayout> |
582 | </ScrollView> | 582 | </ScrollView> |
583 | 583 | ||
584 | </RelativeLayout> | 584 | </RelativeLayout> |