move getSharingUri() to Utils for easier reuse

This method will also be used by the local repo for swapping.
This commit is contained in:
Hans-Christoph Steiner 2014-04-25 11:49:43 -04:00
parent 1018cad3b4
commit 527f649fc2
2 changed files with 26 additions and 26 deletions

View File

@ -19,23 +19,27 @@
package org.fdroid.fdroid;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.net.Uri;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Log;
import com.nostra13.universalimageloader.utils.StorageUtils;
import org.fdroid.fdroid.data.Repo;
import java.io.Closeable;
import java.io.File;
import java.io.FileReader;
import java.io.InputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.MessageDigest;
import java.security.cert.Certificate;
import java.security.cert.CertificateEncodingException;
import java.text.SimpleDateFormat;
import java.security.MessageDigest;
import java.util.*;
public final class Utils {
@ -188,6 +192,22 @@ public final class Utils {
return displayFP;
}
public static Uri getSharingUri(Context context, Repo repo) {
Uri uri = Uri.parse(repo.address.replaceFirst("http", "fdroidrepo"));
Uri.Builder b = uri.buildUpon();
b.appendQueryParameter("fingerprint", repo.fingerprint);
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ssid = wifiInfo.getSSID().replaceAll("^\"(.*)\"$", "$1");
String bssid = wifiInfo.getBSSID();
if (!TextUtils.isEmpty(bssid)) {
b.appendQueryParameter("bssid", Uri.encode(bssid));
if (!TextUtils.isEmpty(ssid))
b.appendQueryParameter("ssid", Uri.encode(ssid));
}
return b.build();
}
public static File getApkCacheDir(Context context) {
File apkCacheDir = new File(
StorageUtils.getCacheDirectory(context, true), "apks");

View File

@ -4,8 +4,6 @@ package org.fdroid.fdroid.views;
import android.annotation.TargetApi;
import android.content.Intent;
import android.net.Uri;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.nfc.NdefMessage;
import android.nfc.NdefRecord;
import android.nfc.NfcAdapter;
@ -13,12 +11,12 @@ import android.os.Build;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.app.FragmentActivity;
import android.text.TextUtils;
import android.util.Log;
import android.widget.LinearLayout;
import android.widget.Toast;
import org.fdroid.fdroid.FDroidApp;
import org.fdroid.fdroid.Utils;
import org.fdroid.fdroid.compat.ActionBarCompat;
import org.fdroid.fdroid.data.Repo;
import org.fdroid.fdroid.data.RepoProvider;
@ -27,7 +25,6 @@ import org.fdroid.fdroid.views.fragments.RepoDetailsFragment;
public class RepoDetailsActivity extends FragmentActivity {
public static final String TAG = "RepoDetailsActivity";
private WifiManager wifiManager;
private Repo repo;
static final String MIME_TYPE = "application/vnd.org.fdroid.fdroid.repo";
@ -67,8 +64,6 @@ public class RepoDetailsActivity extends FragmentActivity {
ActionBarCompat.create(this).setDisplayHomeAsUpEnabled(true);
setTitle(repo.getName());
wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
}
@TargetApi(14)
@ -80,7 +75,7 @@ public class RepoDetailsActivity extends FragmentActivity {
return;
}
nfcAdapter.setNdefPushMessage(new NdefMessage(new NdefRecord[] {
NdefRecord.createUri(getSharingUri()),
NdefRecord.createUri(Utils.getSharingUri(this, repo)),
}), this);
findViewById(android.R.id.content).post(new Runnable() {
@Override
@ -128,19 +123,4 @@ public class RepoDetailsActivity extends FragmentActivity {
finish();
}
}
protected Uri getSharingUri() {
Uri uri = Uri.parse(repo.address.replaceFirst("http", "fdroidrepo"));
Uri.Builder b = uri.buildUpon();
b.appendQueryParameter("fingerprint", repo.fingerprint);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ssid = wifiInfo.getSSID().replaceAll("^\"(.*)\"$", "$1");
String bssid = wifiInfo.getBSSID();
if (!TextUtils.isEmpty(bssid)) {
b.appendQueryParameter("bssid", Uri.encode(bssid));
if (!TextUtils.isEmpty(ssid))
b.appendQueryParameter("ssid", Uri.encode(ssid));
}
return b.build();
}
}