implement mirror/repos on USB OTG via Storage Access Framework

* https://developer.android.com/training/articles/scoped-directory-access

One potential future direction, if this proves too limiting:
https://github.com/magnusja/libaums
This commit is contained in:
Hans-Christoph Steiner
2018-09-11 10:30:00 +02:00
parent 1ce70d3703
commit 525f99b056
8 changed files with 239 additions and 6 deletions

View File

@@ -91,7 +91,7 @@ public class TreeUriDownloader extends Downloader {
@Override
protected long totalDownloadSize() {
return documentFile.length();
return documentFile.length(); // TODO how should this actually be implemented?
}
@Override

View File

@@ -58,11 +58,12 @@ import org.fdroid.fdroid.Utils;
import org.fdroid.fdroid.data.NewRepoConfig;
import org.fdroid.fdroid.nearby.SDCardScannerService;
import org.fdroid.fdroid.nearby.SwapService;
import org.fdroid.fdroid.nearby.SwapWorkflowActivity;
import org.fdroid.fdroid.nearby.TreeUriScannerIntentService;
import org.fdroid.fdroid.nearby.WifiStateChangeService;
import org.fdroid.fdroid.views.AppDetailsActivity;
import org.fdroid.fdroid.views.ManageReposActivity;
import org.fdroid.fdroid.views.apps.AppListActivity;
import org.fdroid.fdroid.nearby.SwapWorkflowActivity;
import java.lang.reflect.Field;
@@ -89,6 +90,7 @@ public class MainActivity extends AppCompatActivity implements BottomNavigationB
static final int REQUEST_LOCATION_PERMISSIONS = 0xEF0F;
static final int REQUEST_STORAGE_PERMISSIONS = 0xB004;
public static final int REQUEST_STORAGE_ACCESS = 0x40E5;
private static final String ADD_REPO_INTENT_HANDLED = "addRepoIntentHandled";
@@ -246,6 +248,14 @@ public class MainActivity extends AppCompatActivity implements BottomNavigationB
checkForAddRepoIntent(intent);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_STORAGE_ACCESS) {
TreeUriScannerIntentService.onActivityResult(this, data);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { // NOCHECKSTYLE LineLength
super.onRequestPermissionsResult(requestCode, permissions, grantResults);