diff --git a/.idea/modules.xml b/.idea/modules.xml index 223896e347e46d8dfc55407a6dddd77831a8af77..abc31fc679bb491e423c03e7bd677ff03ed00d98 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,9 +2,8 @@ <project version="4"> <component name="ProjectModuleManager"> <modules> - <module fileurl="file://F:\informatika\pbd\fitness\android.iml" filepath="F:\informatika\pbd\fitness\android.iml" /> + <module fileurl="file://$PROJECT_DIR$/android.iml" filepath="$PROJECT_DIR$/android.iml" /> <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> - <module fileurl="file://$PROJECT_DIR$/fitness.iml" filepath="$PROJECT_DIR$/fitness.iml" /> </modules> </component> </project> \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 9597d516cc8b7ab7a9c5a771b05657f60bdd936d..d335be3ca746f8c7e54b5bb72825e8cf56372efa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -40,6 +40,7 @@ dependencies { compile 'com.android.support:design:26.1.0' compile 'com.firebaseui:firebase-ui:0.6.0' + compile 'com.firebase:firebase-client-android:2.5.2' } apply plugin: 'com.google.gms.google-services' diff --git a/app/google-services.json b/app/google-services.json index b82dd4404638156cd5daec4df7d9dde44ddf37f2..a4f5db10ca55956e7eb83c3fc17b6af1d441f4f0 100644 --- a/app/google-services.json +++ b/app/google-services.json @@ -1,109 +1,21 @@ { "project_info": { - "project_number": "145946844862", - "firebase_url": "https://chatroom-ca444.firebaseio.com", - "project_id": "chatroom-ca444", - "storage_bucket": "chatroom-ca444.appspot.com" + "project_number": "47436114658", + "firebase_url": "https://chatroom-9f21a.firebaseio.com", + "project_id": "chatroom-9f21a", + "storage_bucket": "chatroom-9f21a.appspot.com" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:145946844862:android:d6ce396209c6cfd3", - "android_client_info": { - "package_name": "com.example.heil.chatroom" - } - }, - "oauth_client": [ - { - "client_id": "145946844862-k70e5blk1gvu645eb455umqnnfb9kp0o.apps.googleusercontent.com", - "client_type": 1, - "android_info": { - "package_name": "com.example.heil.chatroom", - "certificate_hash": "115e06ed0d4d6219898c05cef50eb935401113dc" - } - }, - { - "client_id": "145946844862-jbf75ke4cnv8t0a7dgriq7tr2dos6n60.apps.googleusercontent.com", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "AIzaSyBlESSrC8NqbRvIHRn4DSCfps5TctNLGjE" - } - ], - "services": { - "analytics_service": { - "status": 1 - }, - "appinvite_service": { - "status": 2, - "other_platform_oauth_client": [ - { - "client_id": "145946844862-jbf75ke4cnv8t0a7dgriq7tr2dos6n60.apps.googleusercontent.com", - "client_type": 3 - } - ] - }, - "ads_service": { - "status": 2 - } - } - }, - { - "client_info": { - "mobilesdk_app_id": "1:145946844862:android:5626d847803be314", - "android_client_info": { - "package_name": "com.example.heil.bismillah" - } - }, - "oauth_client": [ - { - "client_id": "145946844862-n22r33mdmtvpi5230r9druv5qvn425g4.apps.googleusercontent.com", - "client_type": 1, - "android_info": { - "package_name": "com.example.heil.bismillah", - "certificate_hash": "115e06ed0d4d6219898c05cef50eb935401113dc" - } - }, - { - "client_id": "145946844862-jbf75ke4cnv8t0a7dgriq7tr2dos6n60.apps.googleusercontent.com", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "AIzaSyBlESSrC8NqbRvIHRn4DSCfps5TctNLGjE" - } - ], - "services": { - "analytics_service": { - "status": 1 - }, - "appinvite_service": { - "status": 2, - "other_platform_oauth_client": [ - { - "client_id": "145946844862-jbf75ke4cnv8t0a7dgriq7tr2dos6n60.apps.googleusercontent.com", - "client_type": 3 - } - ] - }, - "ads_service": { - "status": 2 - } - } - }, - { - "client_info": { - "mobilesdk_app_id": "1:145946844862:android:35ec7a00c3481d94", + "mobilesdk_app_id": "1:47436114658:android:35ec7a00c3481d94", "android_client_info": { "package_name": "com.example.leo.fitnessdiy" } }, "oauth_client": [ { - "client_id": "145946844862-oshjav6a4mq4760hnt0m1940gkhdnrri.apps.googleusercontent.com", + "client_id": "47436114658-rqa1vg0ujgrigjr06v5bq9mh602b4d8v.apps.googleusercontent.com", "client_type": 1, "android_info": { "package_name": "com.example.leo.fitnessdiy", @@ -111,13 +23,13 @@ } }, { - "client_id": "145946844862-jbf75ke4cnv8t0a7dgriq7tr2dos6n60.apps.googleusercontent.com", + "client_id": "47436114658-nbvl0jljj7m3ghkf2j3uf8nutqft1k17.apps.googleusercontent.com", "client_type": 3 } ], "api_key": [ { - "current_key": "AIzaSyBlESSrC8NqbRvIHRn4DSCfps5TctNLGjE" + "current_key": "AIzaSyByNyWfdtliAQrLe1-yytroe_S_JIvhS00" } ], "services": { @@ -128,7 +40,7 @@ "status": 2, "other_platform_oauth_client": [ { - "client_id": "145946844862-jbf75ke4cnv8t0a7dgriq7tr2dos6n60.apps.googleusercontent.com", + "client_id": "47436114658-nbvl0jljj7m3ghkf2j3uf8nutqft1k17.apps.googleusercontent.com", "client_type": 3 } ] diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0e576b99e30248188704eb8e685f8813a8ca7a2a..bfabb151d20282e3b0fb0c9c9e7fbfc02b2cecc0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,6 +9,9 @@ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> + <uses-feature + android:name="android.hardware.sensor.proximity" + android:required="true" /> <!-- The ACCESS_COARSE/FINE_LOCATION permissions are not required to use Google Maps Android API v2, but you must specify either coarse or fine @@ -57,7 +60,8 @@ <activity android:name=".JoggingActivity" android:label="@string/title_activity_jogging" /> - <activity android:name=".SettingActivity"></activity> + <activity android:name=".SettingActivity" /> + <activity android:name=".SensorActivity"></activity> </application> </manifest> \ No newline at end of file diff --git a/app/src/main/java/com/example/leo/fitnessdiy/ChatActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/ChatActivity.java index 58ec25dfed95ea1f6185b45f1edc2161f738c1b1..605cfd55adf79478f13d55aacc858ae2e3d28aab 100644 --- a/app/src/main/java/com/example/leo/fitnessdiy/ChatActivity.java +++ b/app/src/main/java/com/example/leo/fitnessdiy/ChatActivity.java @@ -2,6 +2,7 @@ package com.example.leo.fitnessdiy; import android.content.Intent; import android.content.SharedPreferences; +import android.os.AsyncTask; import android.support.annotation.NonNull; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; @@ -15,6 +16,7 @@ import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; +import com.firebase.client.authentication.Constants; import com.firebase.ui.auth.AuthUI; import com.firebase.ui.database.FirebaseListAdapter; import com.google.android.gms.tasks.OnCompleteListener; @@ -22,13 +24,22 @@ import com.google.android.gms.tasks.Task; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.database.FirebaseDatabase; +import org.json.JSONObject; + import java.util.Date; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; + /** * Created by Heil on 2/18/2018. */ public class ChatActivity extends AppCompatActivity { + private static String LEGACY_SERVER_KEY = "AIzaSyAe9-zGwsfRuRw_rA9fp6NmY2v_En5Yv0M"; private static final int SIGN_IN_REQUEST_CODE = 1; private FirebaseListAdapter<ChatMessage> adapter; diff --git a/app/src/main/java/com/example/leo/fitnessdiy/ChatMessage.java b/app/src/main/java/com/example/leo/fitnessdiy/ChatMessage.java index 5225c8bf6a44f88efe75e04b543dcd9697389e77..ea5d16322e57ecacd374b955a03219bce8ae190c 100644 --- a/app/src/main/java/com/example/leo/fitnessdiy/ChatMessage.java +++ b/app/src/main/java/com/example/leo/fitnessdiy/ChatMessage.java @@ -14,11 +14,13 @@ import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; +import com.firebase.client.Firebase; import com.firebase.ui.auth.AuthUI; import com.firebase.ui.database.FirebaseListAdapter; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.FirebaseDatabase; import java.util.Date; diff --git a/app/src/main/java/com/example/leo/fitnessdiy/HomeActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/HomeActivity.java index 2c237eeda8b856f37755f74e1d20d8cabb0969fe..f5cd9b9bc9850476e86d44e48be3f7923c51add3 100644 --- a/app/src/main/java/com/example/leo/fitnessdiy/HomeActivity.java +++ b/app/src/main/java/com/example/leo/fitnessdiy/HomeActivity.java @@ -2,6 +2,10 @@ package com.example.leo.fitnessdiy; import android.content.Intent; import android.content.SharedPreferences; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; import android.net.Uri; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AppCompatActivity; @@ -14,6 +18,7 @@ import android.view.View; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; +import android.widget.Toast; public class HomeActivity extends AppCompatActivity implements ExerciseFragment.OnFragmentInteractionListener, @@ -22,6 +27,12 @@ public class HomeActivity extends AppCompatActivity private FloatingActionButton chatButton; + // Sensor variable declaration + private SensorManager sensorManager; + private Sensor proximitySensor; + private SensorEventListener proximitySensorListener; + + private final String LOG_TAG = "BACKGROUND"; @Override public void onFragmentInteraction(Uri uri) { @@ -56,6 +67,30 @@ public class HomeActivity extends AppCompatActivity mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE); int background = mPreferences.getInt(BACKGROUND_KEY, R.drawable.green_theme); getWindow().getDecorView().setBackground(getResources().getDrawable(background)); + + // Proximity Sensor + sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); + proximitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); + + if (proximitySensor == null) { + Toast.makeText(this, "Proximity sensor is not available !", Toast.LENGTH_LONG).show(); + finish(); + } + + proximitySensorListener = new SensorEventListener() { + @Override + public void onSensorChanged(SensorEvent sensorEvent) { + if (sensorEvent.values[0] < proximitySensor.getMaximumRange()) { + Intent i = new Intent(getApplicationContext(), ChatActivity.class); + startActivity(i); + } + } + + @Override + public void onAccuracyChanged(Sensor sensor, int i) { + } + }; + } public void openHistory(View view) { @@ -96,5 +131,18 @@ public class HomeActivity extends AppCompatActivity startActivity(i); } + @Override + protected void onResume() { + super.onResume(); + sensorManager.registerListener(proximitySensorListener, proximitySensor, + 2 * 1000 * 1000); + } + + @Override + protected void onPause() { + super.onPause(); + sensorManager.unregisterListener(proximitySensorListener); + } + } diff --git a/app/src/main/java/com/example/leo/fitnessdiy/LevelActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/LevelActivity.java index eba5dcfcfacd61e068b8a79e8214493a7542fc66..52996efb84a964c64f2ff978a81967d85b0a955b 100644 --- a/app/src/main/java/com/example/leo/fitnessdiy/LevelActivity.java +++ b/app/src/main/java/com/example/leo/fitnessdiy/LevelActivity.java @@ -1,20 +1,34 @@ package com.example.leo.fitnessdiy; +import android.content.Intent; import android.content.SharedPreferences; +import android.os.StrictMode; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.util.Log; import android.view.View; import android.widget.RadioButton; -public class LevelActivity extends AppCompatActivity { +import com.example.leo.fitnessdiy.model.Users; +import com.example.leo.fitnessdiy.model.UsersSharedPreferences; +import com.example.leo.fitnessdiy.routes.api; + +import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Scanner; +public class LevelActivity extends AppCompatActivity { + private SharedPreferences mPreferences; + String sharedPrefFile = "com.example.leo.fitnessdiy"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_level); - SharedPreferences mPreferences; - String sharedPrefFile = "com.example.leo.fitnessdiy"; + final String BACKGROUND_KEY = "background"; mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE); @@ -24,23 +38,55 @@ public class LevelActivity extends AppCompatActivity { public void selectLevel(View view) { boolean checked = ((RadioButton) view).isChecked(); - + String level = ""; switch (view.getId()){ case R.id.level_begineer: if(checked){ - + level = "begineer"; } break; case R.id.level_intermediate: if(checked){ - + level = "intermediate"; } break; case R.id.level_advanced: if(checked){ - + level = "advanced"; } break; } + mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE); + SharedPreferences.Editor preferencesEditor = mPreferences.edit(); + preferencesEditor.putString(UsersSharedPreferences.LEVEL_USERS, level); + preferencesEditor.apply(); + Log.d("LEVEL", mPreferences.getString(UsersSharedPreferences.LEVEL_USERS, "level salah")); + editLevel(level, mPreferences); + Intent i = new Intent(getApplicationContext(), HomeActivity.class); + startActivity(i); + } + + public void editLevel(String level, SharedPreferences mPreferences){ + int user = mPreferences.getInt(UsersSharedPreferences.ID_USERS, 0); + String urlstring = api.EDIT_LEVEL_URL+"user="+user+"&level="+level; + if (android.os.Build.VERSION.SDK_INT > 9) { + StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); + StrictMode.setThreadPolicy(policy); + } + try { + URL url = new URL(urlstring); + HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); + try { + InputStream in = urlConnection.getInputStream(); + + Scanner scanner = new Scanner(in); + } finally { + urlConnection.disconnect(); + } + }catch (MalformedURLException e){ + e.printStackTrace(); + }catch (IOException e) { + e.printStackTrace(); + } } } diff --git a/app/src/main/java/com/example/leo/fitnessdiy/LoginActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/LoginActivity.java index 464b094dcd7378bba6d24f0a3068becca97ef2f9..2685d604b324bfb290215c97f9bab26c91b1921d 100644 --- a/app/src/main/java/com/example/leo/fitnessdiy/LoginActivity.java +++ b/app/src/main/java/com/example/leo/fitnessdiy/LoginActivity.java @@ -9,8 +9,10 @@ import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.EditText; +import android.widget.Toast; import com.example.leo.fitnessdiy.model.Users; +import com.example.leo.fitnessdiy.model.UsersSharedPreferences; import java.io.BufferedWriter; import java.io.IOException; @@ -23,14 +25,15 @@ import java.util.Scanner; public class LoginActivity extends AppCompatActivity { private String LOG_TAG = "LOGIN ACTIVITY"; + private SharedPreferences mPreferences; + private String sharedPrefFile = "com.example.leo.fitnessdiy"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); - SharedPreferences mPreferences; - String sharedPrefFile = "com.example.leo.fitnessdiy"; final String BACKGROUND_KEY = "background"; + mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE); int background = R.drawable.green_theme; try{ @@ -53,24 +56,33 @@ public class LoginActivity extends AppCompatActivity { Users user = null; try { response = getResponseFromHttpUrlPost(email, password); - Log.d("RESPONSE", response); +// Log.d("RESPONSE", response); } catch (IOException e){ e.printStackTrace(); } if(!response.equals("not_found")) { + Log.d(LOG_TAG, response); user = Users.initializeData(response); +// Log.d(LOG_TAG, "" + user.getId()); +// Log.d(LOG_TAG, user.getUsername()); +// Log.d(LOG_TAG, user.getEmail()); +// Log.d(LOG_TAG, user.getLevel()); + mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE); + UsersSharedPreferences.setUserSharedPreferences(mPreferences, user); +// Log.d(LOG_TAG, mPreferences.getString(UsersSharedPreferences.EMAIL_USERS, "user tidak ditemukan")); +// Log.d(LOG_TAG, mPreferences.getString(UsersSharedPreferences.PASSWORD_USERS, "user tidak ditemukan")); } if(user == null){ - Log.d(LOG_TAG, "Email atau password salah"); + Toast.makeText(getApplicationContext(), "Email atau password salah", Toast.LENGTH_SHORT).show(); } else { - Log.d(LOG_TAG, "" + user.getId()); - Log.d(LOG_TAG, user.getUsername()); - Log.d(LOG_TAG, user.getEmail()); - Log.d(LOG_TAG, user.getLevel()); + Intent i = new Intent(getApplicationContext(), HomeActivity.class); startActivity(i); } } + + + public static String getResponseFromHttpUrlPost(String email, String password) throws IOException { if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); @@ -110,4 +122,9 @@ public class LoginActivity extends AppCompatActivity { } return null; } + + public void toRegister(View view) { + Intent i = new Intent(getApplicationContext(), RegistrationActivity.class); + startActivity(i); + } } diff --git a/app/src/main/java/com/example/leo/fitnessdiy/PlankActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/PlankActivity.java index 96b5ae0399db087115758eccbd496ce4f5da8166..fd56f20182fb0326b35588b18e876fcc9a7a306b 100644 --- a/app/src/main/java/com/example/leo/fitnessdiy/PlankActivity.java +++ b/app/src/main/java/com/example/leo/fitnessdiy/PlankActivity.java @@ -12,6 +12,7 @@ import android.widget.TextView; import com.example.leo.fitnessdiy.Utilities.NetworkUtils; import com.example.leo.fitnessdiy.model.Users; +import com.example.leo.fitnessdiy.model.UsersSharedPreferences; import com.example.leo.fitnessdiy.routes.api; import org.json.JSONArray; @@ -24,29 +25,26 @@ import java.util.ArrayList; public class PlankActivity extends AppCompatActivity { private String LOG_TAG = "TES PLANK ACTIVITY"; - Users user = getUser(1); - + String sharedPrefFile = "com.example.leo.fitnessdiy"; + private SharedPreferences mPreferences; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_plank); SharedPreferences mPreferences; - String sharedPrefFile = "com.example.leo.fitnessdiy"; + final String BACKGROUND_KEY = "background"; - mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE); + mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE); int background = mPreferences.getInt(BACKGROUND_KEY, R.drawable.green_theme); getWindow().getDecorView().setBackground(getResources().getDrawable(background)); - - - } - public int setCountTime(Users user){ - if(user.getLevel().equals("begineer")){ + public int setCountTime(String level){ + if(level.equals("begineer")){ return 60000; - } else if(user.getLevel().equals("intermediate")){ + } else if(level.equals("intermediate")){ return 120000; } else { return 180000; @@ -64,7 +62,9 @@ public class PlankActivity extends AppCompatActivity { public void countDownPlank(View view) { final TextView countText = findViewById(R.id.count_timer); - new CountDownTimer(setCountTime(user), 1000){ + mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE); + String level = mPreferences.getString(UsersSharedPreferences.LEVEL_USERS, "begineer"); + new CountDownTimer(setCountTime(level), 1000){ @Override public void onTick(long l) { String waktu = milisecondToMinutes(l); @@ -79,22 +79,6 @@ public class PlankActivity extends AppCompatActivity { } - - public Users getUser(int user_id){ - Users user = new Users(); - try { - URL url = new URL("http://ekiwae21.000webhostapp.com/fitness-server/users.php?user="+user_id); - String fetchResults = NetworkUtils.getResponseFromHttpUrl(url); - user = Users.initializeData(fetchResults); - - Log.d(LOG_TAG, Integer.toString(user.getId())); - Log.d(LOG_TAG, user.getLevel()); - } catch (IOException e) { - e.printStackTrace(); - } - return user; - } - public void openVideo(View view) { String url = (String)view.getTag(); diff --git a/app/src/main/java/com/example/leo/fitnessdiy/PushupActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/PushupActivity.java index c2bdd3de4656e72b9a2e949c536db9ff3b72caef..dccec83fc0fd4daad31f837fefddc4a5750bece0 100644 --- a/app/src/main/java/com/example/leo/fitnessdiy/PushupActivity.java +++ b/app/src/main/java/com/example/leo/fitnessdiy/PushupActivity.java @@ -8,6 +8,8 @@ import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.TextView; +import com.example.leo.fitnessdiy.model.UsersSharedPreferences; + /** * Created by Heil on 2/19/2018. */ @@ -24,10 +26,24 @@ public class PushupActivity extends AppCompatActivity{ final String BACKGROUND_KEY = "background"; mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE); + String level = mPreferences.getString(UsersSharedPreferences.LEVEL_USERS, "begineer"); + setPushUpFrequency(level); + int background = mPreferences.getInt(BACKGROUND_KEY, R.drawable.green_theme); getWindow().getDecorView().setBackground(getResources().getDrawable(background)); } + public void setPushUpFrequency(String level){ + TextView pushUpTask = (TextView)findViewById(R.id.pushUpTask); + if(level.equals("begineer")){ + pushUpTask.setText("Do Push Up 30 times"); + }else if(level.equals("intermediate")){ + pushUpTask.setText("Do Push Up 60 times"); + }else if(level.equals("advanced")){ + pushUpTask.setText("Do Push Up 90 times"); + } + } + public void openVideo(View view) { String url = (String)view.getTag(); diff --git a/app/src/main/java/com/example/leo/fitnessdiy/SensorActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/SensorActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..d2d6b23ddeb00321d7185f394d6f4c37fced8803 --- /dev/null +++ b/app/src/main/java/com/example/leo/fitnessdiy/SensorActivity.java @@ -0,0 +1,58 @@ +package com.example.leo.fitnessdiy; + +import android.content.Intent; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.widget.Toast; + +public class SensorActivity extends AppCompatActivity { + + private SensorManager sensorManager; + private Sensor proximitySensor; + private SensorEventListener proximitySensorListener; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); + proximitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); + + if (proximitySensor == null) { + Toast.makeText(this, "Proximity sensor is not available !", Toast.LENGTH_LONG).show(); + finish(); + } + + proximitySensorListener = new SensorEventListener() { + @Override + public void onSensorChanged(SensorEvent sensorEvent) { + if (sensorEvent.values[0] < proximitySensor.getMaximumRange()) { + Intent i = new Intent(getApplicationContext(), ChatActivity.class); + startActivity(i); + } + } + + @Override + public void onAccuracyChanged(Sensor sensor, int i) { + } + }; + + } + + @Override + protected void onResume() { + super.onResume(); + sensorManager.registerListener(proximitySensorListener, proximitySensor, + 2 * 1000 * 1000); + } + + @Override + protected void onPause() { + super.onPause(); + sensorManager.unregisterListener(proximitySensorListener); + } +} diff --git a/app/src/main/java/com/example/leo/fitnessdiy/SitupActivity.java b/app/src/main/java/com/example/leo/fitnessdiy/SitupActivity.java index 0e49742d968efb1ba59afe8583d723af8b0c596a..b7e04551cd53201ed166155392df73fee08f53e6 100644 --- a/app/src/main/java/com/example/leo/fitnessdiy/SitupActivity.java +++ b/app/src/main/java/com/example/leo/fitnessdiy/SitupActivity.java @@ -8,6 +8,8 @@ import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.TextView; +import com.example.leo.fitnessdiy.model.UsersSharedPreferences; + /** * Created by Heil on 2/19/2018. */ @@ -24,10 +26,24 @@ public class SitupActivity extends AppCompatActivity{ final String BACKGROUND_KEY = "background"; mPreferences = getSharedPreferences(sharedPrefFile, MODE_PRIVATE); + String level = mPreferences.getString(UsersSharedPreferences.LEVEL_USERS, "begineer"); + setSitUpFrequency(level); + int background = mPreferences.getInt(BACKGROUND_KEY, R.drawable.green_theme); getWindow().getDecorView().setBackground(getResources().getDrawable(background)); } + public void setSitUpFrequency(String level){ + TextView pushUpTask = (TextView)findViewById(R.id.pushUpTask); + if(level.equals("begineer")){ + pushUpTask.setText("Do Push Up 30 times"); + }else if(level.equals("intermediate")){ + pushUpTask.setText("Do Push Up 60 times"); + }else if(level.equals("advanced")){ + pushUpTask.setText("Do Push Up 90 times"); + } + } + public void openVideo(View view) { String url = (String)view.getTag(); diff --git a/app/src/main/java/com/example/leo/fitnessdiy/model/Users.java b/app/src/main/java/com/example/leo/fitnessdiy/model/Users.java index 5a0ab64af6d344325a7f13e70e495c97b6c26d66..0371f94739ca391be62e8c95aafe9acd962a003f 100644 --- a/app/src/main/java/com/example/leo/fitnessdiy/model/Users.java +++ b/app/src/main/java/com/example/leo/fitnessdiy/model/Users.java @@ -71,15 +71,16 @@ public class Users { public static Users initializeData(String data) { Users user = new Users(); try { - JSONArray parser = new JSONArray(data); - JSONObject json = parser.getJSONObject(0); +// JSONArray parser = new JSONArray(data); + JSONObject json = new JSONObject(data); +// parser.getJSONObject(0); - int id = json.getInt("id"); + int id = Integer.parseInt(json.getString("id")); String username = json.getString("username"); String password = json.getString("password"); String email = json.getString("email"); String phone_number = json.getString("phone_number"); - int age = json.getInt("age"); + int age = Integer.parseInt(json.getString("age")); String address = json.getString("address"); String level = json.getString("level"); user = new Users(id, username, password, email, phone_number, age, address, level); diff --git a/app/src/main/java/com/example/leo/fitnessdiy/model/UsersSharedPreferences.java b/app/src/main/java/com/example/leo/fitnessdiy/model/UsersSharedPreferences.java new file mode 100644 index 0000000000000000000000000000000000000000..d82d4f4eaf4496d77d75e093ec22c4b509f7a6d2 --- /dev/null +++ b/app/src/main/java/com/example/leo/fitnessdiy/model/UsersSharedPreferences.java @@ -0,0 +1,40 @@ +package com.example.leo.fitnessdiy.model; + +import android.content.SharedPreferences; + +public class UsersSharedPreferences { + public static final String ID_USERS = "id_users"; + public static final String USERNAME_USERS = "username_users"; + public static final String PASSWORD_USERS = "password_users"; + public static final String EMAIL_USERS = "email_users"; + public static final String PHONE_NUMBER_USERS = "phone_number_users"; + public static final String AGE_USERS = "age_users"; + public static final String ADDRESS_USERS = "address_users"; + public static final String LEVEL_USERS = "level_users"; + + public static void setUserSharedPreferences(SharedPreferences mPreferences, Users user){ + SharedPreferences.Editor preferencesEditor = mPreferences.edit(); + preferencesEditor.putInt(ID_USERS, user.getId()); + preferencesEditor.putString(USERNAME_USERS, user.getUsername()); + preferencesEditor.putString(PASSWORD_USERS, user.getPassword()); + preferencesEditor.putString(EMAIL_USERS, user.getEmail()); + preferencesEditor.putString(PHONE_NUMBER_USERS, user.getPhone_number()); + preferencesEditor.putInt(AGE_USERS, user.getAge()); + preferencesEditor.putString(ADDRESS_USERS, user.getAddress()); + preferencesEditor.putString(LEVEL_USERS, user.getLevel()); + preferencesEditor.apply(); + } + + public static void setDefaultSharedPreferences(SharedPreferences mPreferences){ + SharedPreferences.Editor preferencesEditor = mPreferences.edit(); + preferencesEditor.putInt(ID_USERS, 0); + preferencesEditor.putString(USERNAME_USERS, ""); + preferencesEditor.putString(PASSWORD_USERS, ""); + preferencesEditor.putString(EMAIL_USERS, ""); + preferencesEditor.putString(PHONE_NUMBER_USERS, ""); + preferencesEditor.putInt(AGE_USERS, 0); + preferencesEditor.putString(ADDRESS_USERS, ""); + preferencesEditor.putString(LEVEL_USERS, ""); + preferencesEditor.apply(); + } +} diff --git a/app/src/main/java/com/example/leo/fitnessdiy/routes/api.java b/app/src/main/java/com/example/leo/fitnessdiy/routes/api.java index c2cc686be728c486e56683a0b1c881811e2489f3..f1d5dbfad197a4cad4a60ff9d34871f69d9fb2da 100644 --- a/app/src/main/java/com/example/leo/fitnessdiy/routes/api.java +++ b/app/src/main/java/com/example/leo/fitnessdiy/routes/api.java @@ -28,4 +28,6 @@ public class api { public static final String PUSHUP_HISTORY_URL = BASE_URL + "pushup_history.php?user="; public static final String SITUP_HISTORY_URL = BASE_URL + "situp_history.php?user="; + + public static final String EDIT_LEVEL_URL = BASE_URL + "edit_level.php?"; } diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 5cb058486c3cb4ad0c2ff5829add4e2fceada9ad..3790c4741099f4ff7ec1dad8646436043b88f5d1 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -32,4 +32,12 @@ android:text="@string/login" android:layout_margin="8dp" android:onClick="doLogin"/> + + <Button + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:text="REGISTER" + android:layout_margin="8dp" + android:onClick="toRegister"/> </LinearLayout> diff --git a/app/src/main/res/layout/activity_sensor.xml b/app/src/main/res/layout/activity_sensor.xml new file mode 100644 index 0000000000000000000000000000000000000000..f4ff271e9d1b2f10e1628e1f6abbb8c2ee73e25f --- /dev/null +++ b/app/src/main/res/layout/activity_sensor.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context="com.example.leo.fitnessdiy.SensorActivity"> + +</android.support.constraint.ConstraintLayout> diff --git a/gradle.properties b/gradle.properties index 43350e51b766e93ecedf2a45b8fcf9f0e411dee3..4c6d70e7cf07d01fa1732dbb07cf63e9f6af50a5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,3 +12,8 @@ # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true +#Thu Feb 22 15:51:55 ICT 2018 +systemProp.http.proxyPassword=07007831 +systemProp.http.proxyHost=cache.itb.ac.id +systemProp.http.proxyUser=rizki_halasan +systemProp.http.proxyPort=8080