diff --git a/README.md b/README.md index 9cff8a567..b89fadc48 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ # Watomatic - Auto reply for WhatsApp so you can stop using it - Watomatic sends an automated reply to everyone contacting you on WhatsApp. This is especially useful if you are planning to migrate away from WhatsApp but can also be used as a vacation responder. Get it on Google Play diff --git a/app/build.gradle b/app/build.gradle index d018d27c9..a327269ba 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -88,6 +88,7 @@ dependencies { implementation "com.squareup.okhttp3:logging-interceptor:4.7.2" implementation 'com.github.transferwise:sequence-layout:1.1.1' implementation "androidx.browser:browser:1.3.0" + } repositories { mavenCentral() diff --git a/app/src/main/java/com/parishod/watomatic/activity/about/AboutActivity.java b/app/src/main/java/com/parishod/watomatic/activity/about/AboutActivity.java new file mode 100644 index 000000000..b55a588f9 --- /dev/null +++ b/app/src/main/java/com/parishod/watomatic/activity/about/AboutActivity.java @@ -0,0 +1,83 @@ +package com.parishod.watomatic.activity.about; + +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.view.View; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; + +import com.parishod.watomatic.R; +import com.parishod.watomatic.model.githubUesrsResponse.GithubUsersResponse; +import com.parishod.watomatic.network.GetGitUserInterface; +import com.parishod.watomatic.network.RetrofitInstance; + +import java.util.List; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; + +public class AboutActivity extends AppCompatActivity implements View.OnClickListener { + + private TextView text_view; + private String all_contributers = ""; + private TextView privacy_policy; + private TextView developer_link; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_about); + + text_view = findViewById(R.id.contributers); + privacy_policy = findViewById(R.id.privacyPolicyLabel); + developer_link = findViewById(R.id.developerLink); + + privacy_policy.setOnClickListener(this); + developer_link.setOnClickListener(this); + Retrofit retrofit = RetrofitInstance.getRetrofitInstance(); + GetGitUserInterface getGitUserInterface = retrofit.create(GetGitUserInterface.class); + + Call> call = getGitUserInterface.getContriUsers(); + call.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if (response.isSuccessful()) { + List list = response.body(); + for (GithubUsersResponse i : list) { + all_contributers += i.getLogin() + ", "; + } + text_view.setText(all_contributers); + } + } + + @Override + public void onFailure(Call> call, Throwable t) { + Toast.makeText(getApplicationContext(), t.getMessage(), Toast.LENGTH_SHORT).show(); + + } + }); + + } + + @Override + public void onClick(View view) { + if (view.getId() == R.id.privacyPolicyLabel) { + String url = "https://adeekshith.github.io/watomatic/#/privacy-policy.md"; + Intent i = new Intent(Intent.ACTION_VIEW); + i.setData(Uri.parse(url)); + startActivity(i); + } + + if (view.getId() == R.id.developerLink) { + String url = "https://twitter.com/adeekshith"; + Intent i = new Intent(Intent.ACTION_VIEW); + i.setData(Uri.parse(url)); + startActivity(i); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/parishod/watomatic/activity/about/AboutActivity.kt b/app/src/main/java/com/parishod/watomatic/activity/about/AboutActivity.kt deleted file mode 100644 index f69da9a77..000000000 --- a/app/src/main/java/com/parishod/watomatic/activity/about/AboutActivity.kt +++ /dev/null @@ -1,36 +0,0 @@ -package com.parishod.watomatic.activity.about - -import android.content.Intent -import android.net.Uri -import android.os.Bundle -import androidx.lifecycle.ViewModelProvider -import com.parishod.watomatic.BuildConfig -import com.parishod.watomatic.R -import com.parishod.watomatic.activity.BaseActivity -import com.parishod.watomatic.databinding.ActivityAboutBinding -import com.parishod.watomatic.viewmodel.SwipeToKillAppDetectViewModel - -class AboutActivity : BaseActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - val binding = ActivityAboutBinding.inflate(layoutInflater) - setContentView(binding.root) - - title = getString(R.string.about) - - ViewModelProvider(this).get(SwipeToKillAppDetectViewModel::class.java) - - binding.appVersion.text = String.format(resources.getString(R.string.app_version), BuildConfig.VERSION_NAME) - binding.privacyPolicyCardView.setOnClickListener { - val url = getString(R.string.url_privacy_policy) - val i = Intent(Intent.ACTION_VIEW).setData(Uri.parse(url)) - startActivity(i) - } - binding.developerLink.setOnClickListener { - val url = getString(R.string.url_adeekshith_twitter) - val i = Intent(Intent.ACTION_VIEW) - i.data = Uri.parse(url) - startActivity(i) - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/parishod/watomatic/model/githubUesrsResponse/GithubUsersResponse.java b/app/src/main/java/com/parishod/watomatic/model/githubUesrsResponse/GithubUsersResponse.java new file mode 100644 index 000000000..20930fb01 --- /dev/null +++ b/app/src/main/java/com/parishod/watomatic/model/githubUesrsResponse/GithubUsersResponse.java @@ -0,0 +1,201 @@ +package com.parishod.watomatic.model.githubUesrsResponse; + + + +import java.util.HashMap; +import java.util.Map; + + +public class GithubUsersResponse { + + private String login; + private Integer id; + private String nodeId; + private String avatarUrl; + private String gravatarId; + private String url; + private String htmlUrl; + private String followersUrl; + private String followingUrl; + private String gistsUrl; + private String starredUrl; + + private String subscriptionsUrl; + + private String organizationsUrl; + + private String reposUrl; + + private String eventsUrl; + + private String receivedEventsUrl; + + private String type; + + private Boolean siteAdmin; + + private Integer contributions; + + private Map additionalProperties = new HashMap(); + + public String getLogin() { + return login; + } + + public void setLogin(String login) { + this.login = login; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getNodeId() { + return nodeId; + } + + public void setNodeId(String nodeId) { + this.nodeId = nodeId; + } + + public String getAvatarUrl() { + return avatarUrl; + } + + public void setAvatarUrl(String avatarUrl) { + this.avatarUrl = avatarUrl; + } + + public String getGravatarId() { + return gravatarId; + } + + public void setGravatarId(String gravatarId) { + this.gravatarId = gravatarId; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getHtmlUrl() { + return htmlUrl; + } + + public void setHtmlUrl(String htmlUrl) { + this.htmlUrl = htmlUrl; + } + + public String getFollowersUrl() { + return followersUrl; + } + + public void setFollowersUrl(String followersUrl) { + this.followersUrl = followersUrl; + } + + public String getFollowingUrl() { + return followingUrl; + } + + public void setFollowingUrl(String followingUrl) { + this.followingUrl = followingUrl; + } + + public String getGistsUrl() { + return gistsUrl; + } + + public void setGistsUrl(String gistsUrl) { + this.gistsUrl = gistsUrl; + } + + public String getStarredUrl() { + return starredUrl; + } + + public void setStarredUrl(String starredUrl) { + this.starredUrl = starredUrl; + } + + public String getSubscriptionsUrl() { + return subscriptionsUrl; + } + + public void setSubscriptionsUrl(String subscriptionsUrl) { + this.subscriptionsUrl = subscriptionsUrl; + } + + public String getOrganizationsUrl() { + return organizationsUrl; + } + + public void setOrganizationsUrl(String organizationsUrl) { + this.organizationsUrl = organizationsUrl; + } + + public String getReposUrl() { + return reposUrl; + } + + public void setReposUrl(String reposUrl) { + this.reposUrl = reposUrl; + } + + public String getEventsUrl() { + return eventsUrl; + } + + public void setEventsUrl(String eventsUrl) { + this.eventsUrl = eventsUrl; + } + + public String getReceivedEventsUrl() { + return receivedEventsUrl; + } + + public void setReceivedEventsUrl(String receivedEventsUrl) { + this.receivedEventsUrl = receivedEventsUrl; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public Boolean getSiteAdmin() { + return siteAdmin; + } + + public void setSiteAdmin(Boolean siteAdmin) { + this.siteAdmin = siteAdmin; + } + + public Integer getContributions() { + return contributions; + } + + public void setContributions(Integer contributions) { + this.contributions = contributions; + } + + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/parishod/watomatic/network/GetGitUserInterface.java b/app/src/main/java/com/parishod/watomatic/network/GetGitUserInterface.java new file mode 100644 index 000000000..68341f782 --- /dev/null +++ b/app/src/main/java/com/parishod/watomatic/network/GetGitUserInterface.java @@ -0,0 +1,14 @@ +package com.parishod.watomatic.network; + +import com.parishod.watomatic.model.githubUesrsResponse.GithubUsersResponse; + +import java.util.List; + +import retrofit2.Call; +import retrofit2.http.GET; + +public interface GetGitUserInterface { + @GET("/repos/adeekshith/watomatic/contributors") + Call> getContriUsers(); + +} diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index b276484c7..ea7219ce6 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -5,103 +5,129 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true"> - - - + tools:context=".activity.about.AboutActivity"> - + + - + android:layout_height="match_parent"> - + + + + + + + + + + - - - - - + android:text="@string/privacy_policy_label" + android:textSize="18sp" + app:drawableStartCompat="@drawable/ic_baseline_privacy_tip_24" /> + - + android:layout_marginLeft="20dp" + android:gravity="left" + android:text="Contributors" + android:textColor="@color/black" + android:textSize="20dp" + app:layout_constraintBottom_toTopOf="@+id/contributers" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/privacyPolicyCardView" /> - + + + - + \ 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 97f246f0e..362a9918f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -3,7 +3,6 @@ https://adeekshith.github.io/watomatic/#/privacy-policy.md \@adeekshith https://twitter.com/adeekshith - About Settings Privacy Policy