From c2fce47975c65489671cb439ca7b518176bff52c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20P=C3=B6hn?= Date: Thu, 7 Jun 2018 15:36:52 +0200 Subject: [PATCH 1/3] add share button to repo details activity, for sharing repo urls --- .../fdroid/views/RepoDetailsActivity.java | 26 ++++++++++++++++++- .../main/res/menu/repo_details_activity.xml | 5 ++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/fdroid/fdroid/views/RepoDetailsActivity.java b/app/src/main/java/org/fdroid/fdroid/views/RepoDetailsActivity.java index 0a862ea9b..4e45a61c2 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/RepoDetailsActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/RepoDetailsActivity.java @@ -22,6 +22,7 @@ import android.text.TextUtils; import android.text.format.DateUtils; import android.view.Menu; import android.view.MenuItem; +import android.view.TextureView; import android.view.View; import android.widget.Button; import android.widget.EditText; @@ -38,6 +39,7 @@ import org.fdroid.fdroid.data.Repo; import org.fdroid.fdroid.data.RepoProvider; import org.fdroid.fdroid.data.Schema.RepoTable; +import java.net.URI; import java.util.Locale; public class RepoDetailsActivity extends AppCompatActivity { @@ -75,6 +77,8 @@ public class RepoDetailsActivity extends AppCompatActivity { private long repoId; private View repoView; + private String shareUrl; + /** * Help function to make switching between two view states easier. * Perhaps there is a better way to do this. I recall that using Adobe @@ -205,6 +209,7 @@ public class RepoDetailsActivity extends AppCompatActivity { @Override public boolean onOptionsItemSelected(MenuItem item) { + Intent intent; switch (item.getItemId()) { case android.R.id.home: NavUtils.navigateUpFromSameTask(this); @@ -213,9 +218,14 @@ public class RepoDetailsActivity extends AppCompatActivity { promptForDelete(); return true; case R.id.menu_enable_nfc: - Intent intent = new Intent(this, NfcNotEnabledActivity.class); + intent = new Intent(this, NfcNotEnabledActivity.class); startActivity(intent); return true; + case R.id.action_share: + intent = new Intent(Intent.ACTION_SEND); + intent.setType("text/plain"); + intent.putExtra(Intent.EXTRA_TEXT, shareUrl); + startActivity(Intent.createChooser(intent, "gogogo")); } return super.onOptionsItemSelected(item); @@ -224,6 +234,7 @@ public class RepoDetailsActivity extends AppCompatActivity { @Override public boolean onPrepareOptionsMenu(Menu menu) { prepareNfcMenuItems(menu); + prepareShareMenuItems(menu); return true; } @@ -247,6 +258,19 @@ public class RepoDetailsActivity extends AppCompatActivity { menuItem.setVisible(needsEnableNfcMenuItem); } + private void prepareShareMenuItems(Menu menu) { + if (!TextUtils.isEmpty(repo.address)) { + if (!TextUtils.isEmpty(repo.fingerprint)) { + shareUrl = Uri.parse(repo.address).buildUpon().appendQueryParameter("fingerprint", repo.fingerprint).toString(); + } else { + shareUrl = repo.address; + } + menu.findItem(R.id.action_share).setVisible(true); + } else { + menu.findItem(R.id.action_share).setVisible(false); + } + } + private void setupDescription(View parent, Repo repo) { TextView descriptionLabel = (TextView) parent.findViewById(R.id.label_description); diff --git a/app/src/main/res/menu/repo_details_activity.xml b/app/src/main/res/menu/repo_details_activity.xml index a98ec8310..54d82fc48 100644 --- a/app/src/main/res/menu/repo_details_activity.xml +++ b/app/src/main/res/menu/repo_details_activity.xml @@ -2,6 +2,11 @@ + Date: Thu, 21 Jun 2018 22:14:09 +0200 Subject: [PATCH 2/3] repo activity: move delete button to end of options menu --- app/src/main/res/menu/repo_details_activity.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/menu/repo_details_activity.xml b/app/src/main/res/menu/repo_details_activity.xml index 54d82fc48..36a9d95b3 100644 --- a/app/src/main/res/menu/repo_details_activity.xml +++ b/app/src/main/res/menu/repo_details_activity.xml @@ -7,15 +7,15 @@ android:icon="@drawable/ic_share_white" android:title="@string/menu_share" app:showAsAction="ifRoom|withText"/> - + From 6f7a8db019dbd4daad09a394fd15934ce247606d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20P=C3=B6hn?= Date: Thu, 28 Jun 2018 16:15:37 +0200 Subject: [PATCH 3/3] fix share repo dialog text --- .../java/org/fdroid/fdroid/views/RepoDetailsActivity.java | 8 ++++---- app/src/main/res/values/strings.xml | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/views/RepoDetailsActivity.java b/app/src/main/java/org/fdroid/fdroid/views/RepoDetailsActivity.java index 4e45a61c2..e3a47464a 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/RepoDetailsActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/RepoDetailsActivity.java @@ -22,7 +22,6 @@ import android.text.TextUtils; import android.text.format.DateUtils; import android.view.Menu; import android.view.MenuItem; -import android.view.TextureView; import android.view.View; import android.widget.Button; import android.widget.EditText; @@ -39,7 +38,6 @@ import org.fdroid.fdroid.data.Repo; import org.fdroid.fdroid.data.RepoProvider; import org.fdroid.fdroid.data.Schema.RepoTable; -import java.net.URI; import java.util.Locale; public class RepoDetailsActivity extends AppCompatActivity { @@ -225,7 +223,8 @@ public class RepoDetailsActivity extends AppCompatActivity { intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, shareUrl); - startActivity(Intent.createChooser(intent, "gogogo")); + startActivity(Intent.createChooser(intent, + getResources().getString(R.string.share_repository))); } return super.onOptionsItemSelected(item); @@ -261,7 +260,8 @@ public class RepoDetailsActivity extends AppCompatActivity { private void prepareShareMenuItems(Menu menu) { if (!TextUtils.isEmpty(repo.address)) { if (!TextUtils.isEmpty(repo.fingerprint)) { - shareUrl = Uri.parse(repo.address).buildUpon().appendQueryParameter("fingerprint", repo.fingerprint).toString(); + shareUrl = Uri.parse(repo.address).buildUpon() + .appendQueryParameter("fingerprint", repo.fingerprint).toString(); } else { shareUrl = repo.address; } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f16836e0c..54029b0fb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -345,6 +345,7 @@ This often occurs with apps installed via Google Play or other sources, if they Saved package repository %1$s. Looking for package repository at\n%1$s + Share Repository %s or later Up to %s %1$s up to %2$s