diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9312351..5720e3c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,6 +3,7 @@
package="com.magdamiu.androidfundamentalsmai2021">
+
-
+
+
diff --git a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StartActivity.java b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StartActivity.java
index 3a1a9c0..7707700 100644
--- a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StartActivity.java
+++ b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/StartActivity.java
@@ -7,6 +7,7 @@
import android.view.View;
import com.magdamiu.androidfundamentalsmai2021.activities.FirstActivity;
+import com.magdamiu.androidfundamentalsmai2021.code_challenge_4.ImplicitActivity;
public class StartActivity extends AppCompatActivity {
@@ -48,4 +49,9 @@ public void startFirstActivityOnClick(View view) {
Intent intentToStartFirstActivity = new Intent(StartActivity.this, FirstActivity.class);
startActivity(intentToStartFirstActivity);
}
+
+ public void startImplicitActivityOnClick(View view) {
+ Intent intentToStartImplicitActivity = new Intent(StartActivity.this, ImplicitActivity.class);
+ startActivity(intentToStartImplicitActivity);
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/code_challenge_4/ImplicitActivity.java b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/code_challenge_4/ImplicitActivity.java
new file mode 100644
index 0000000..8a67f56
--- /dev/null
+++ b/app/src/main/java/com/magdamiu/androidfundamentalsmai2021/code_challenge_4/ImplicitActivity.java
@@ -0,0 +1,92 @@
+package com.magdamiu.androidfundamentalsmai2021.code_challenge_4;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.magdamiu.androidfundamentalsmai2021.R;
+import com.magdamiu.androidfundamentalsmai2021.activities.FirstActivity;
+
+import static com.magdamiu.androidfundamentalsmai2021.R.string.use_device_with_sim;
+
+public class ImplicitActivity extends AppCompatActivity {
+
+ private EditText editTextWebsite, editTextLocation, editTextShareText, editTextPhoneNumber;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_implicit);
+ findViews();
+ }
+
+ private void findViews() {
+ editTextWebsite = findViewById(R.id.editTextWebsite);
+ editTextLocation = findViewById(R.id.editTextLocation);
+ editTextShareText = findViewById(R.id.editTextShareText);
+ editTextPhoneNumber = findViewById(R.id.editTextPhoneNumber);
+ }
+
+ public void openWebsiteOnClick(View view) {
+ Intent openWebsite = new Intent(Intent.ACTION_VIEW);
+ String urlOfWebsite = editTextWebsite.getText().toString();
+ if (urlOfWebsite.isEmpty()) {
+ editTextWebsite.setError(getString(R.string.error_insert_url));
+ } else {
+ openWebsite.setData(Uri.parse(urlOfWebsite));
+ startActivity(openWebsite);
+ }
+ }
+
+ public void openLocationOnClick(View view) {
+ String location = editTextLocation.getText().toString();
+ if (location.isEmpty()) {
+ editTextLocation.setError(getString(R.string.error_insert_location));
+ } else {
+ Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4192?q=" + Uri.encode(location));
+ Intent openLocation = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
+ openLocation.setPackage("com.google.android.apps.maps");
+ startActivity(openLocation);
+ }
+ }
+
+ @SuppressLint("QueryPermissionsNeeded")
+ public void shareTextOnClick(View view) {
+ String textToShare = editTextShareText.getText().toString();
+ if (textToShare.isEmpty()) {
+ editTextShareText.setError(getString(R.string.error_insert_text));
+ } else {
+ Intent shareText = new Intent(Intent.ACTION_SEND);
+ shareText.setType("text/plain");
+ shareText.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.share_subject));
+ shareText.putExtra(android.content.Intent.EXTRA_TEXT, textToShare);
+ if (shareText.resolveActivity(ImplicitActivity.this.getPackageManager()) != null) {
+ startActivity(Intent.createChooser(shareText, getString(R.string.share_using)));
+ } else {
+ Toast.makeText(ImplicitActivity.this, "No app found on your phone which can perform this action", Toast.LENGTH_SHORT).show();
+ }
+ }
+ }
+
+ @SuppressLint("QueryPermissionsNeeded")
+ public void callPhoneNumberOnClick(View view) {
+ String phoneNumber = editTextPhoneNumber.getText().toString();
+ if (phoneNumber.length() != 10) {
+ editTextPhoneNumber.setError(getString(R.string.error_insert_phone_number));
+ } else {
+ Intent callPhoneNumber = new Intent(Intent.ACTION_DIAL);
+ callPhoneNumber.setData(Uri.fromParts("tel", phoneNumber.trim(), null));
+ if (callPhoneNumber.resolveActivity(ImplicitActivity.this.getPackageManager()) != null) {
+ startActivity(callPhoneNumber);
+ } else {
+ Toast.makeText(ImplicitActivity.this, use_device_with_sim, Toast.LENGTH_LONG).show();
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_implicit.xml b/app/src/main/res/layout/activity_implicit.xml
new file mode 100644
index 0000000..e38dc87
--- /dev/null
+++ b/app/src/main/res/layout/activity_implicit.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_start.xml b/app/src/main/res/layout/activity_start.xml
index 4d971ee..3421317 100644
--- a/app/src/main/res/layout/activity_start.xml
+++ b/app/src/main/res/layout/activity_start.xml
@@ -11,24 +11,30 @@
+ android:onClick="startMainActivityOnClick"
+ android:text="@string/start_mainactivity" />
+ android:onClick="startRecyclerViewActivityOnClick"
+ android:text="@string/start_recyclerview_activity" />
+ android:onClick="startConstraintActivityOnClick"
+ android:text="@string/start_constraint_activity" />
+ android:onClick="startFirstActivityOnClick"
+ android:text="@string/start_firstactivity" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index e8b2c28..dccbcc9 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -2,6 +2,7 @@
23sp
16dp
+ 8dp
128dp
64dp
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d4dcf4b..82cbfae 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -12,6 +12,7 @@
Please add your name here
Greetings :)
Please insert a name
+ Please insert an url
TextView 3
TextView 2
TextView 1
@@ -66,4 +67,17 @@ Ut fermentum feugiat lorem sed ultrices. Phasellus et mattis diam. Sed faucibus
hello from first activity
Sample startActivityForResult
Yes, I\'m here! :)
+ Start Code Challenge 4
+ Website
+ Location
+ Open Website
+ Open Location
+ Text
+ Share Text
+ Phone Number
+ Please insert a location
+ Please insert a text to share
+ Sharing a text
+ Share using
+ Please insert a valid phone number
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 2868c13..df069fd 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -1,6 +1,6 @@
-