add share button to repo details activity, for sharing repo urls
This commit is contained in:
		
							parent
							
								
									1bd4f9f4e7
								
							
						
					
					
						commit
						c2fce47975
					
				@ -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);
 | 
			
		||||
 | 
			
		||||
@ -2,6 +2,11 @@
 | 
			
		||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
 | 
			
		||||
    xmlns:app="http://schemas.android.com/apk/res-auto">
 | 
			
		||||
 | 
			
		||||
    <item
 | 
			
		||||
        android:id="@+id/action_share"
 | 
			
		||||
        android:icon="@drawable/ic_share_white"
 | 
			
		||||
        android:title="@string/menu_share"
 | 
			
		||||
        app:showAsAction="ifRoom|withText"/>
 | 
			
		||||
    <item
 | 
			
		||||
        android:id="@+id/menu_delete"
 | 
			
		||||
        android:icon="@drawable/ic_delete_white"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user