mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2025-01-10 17:11:56 +01:00
Fix installing pbw files from different URIs than local files on Firmware 3.x. Fixes #183
This commit is contained in:
parent
9ebb320e10
commit
79f92b8495
@ -1,6 +1,8 @@
|
|||||||
###Changelog
|
###Changelog
|
||||||
|
|
||||||
####Next Version
|
####Next Version
|
||||||
|
* Pebble: fix regression in 0.6.7 when installing pbw/pbz files from content providers (eg. download manager)
|
||||||
|
* Pebble: fix installation of pbw files on firmware 3.x when using content providers (eg. download manager)
|
||||||
+ Treat Signal notifications as chat notifications
|
+ Treat Signal notifications as chat notifications
|
||||||
* Fix crash when contacts cannot be read on Android 6.0 (non-granted pemissions)
|
* Fix crash when contacts cannot be read on Android 6.0 (non-granted pemissions)
|
||||||
|
|
||||||
|
@ -108,11 +108,10 @@ public class PBWInstallHandler implements InstallHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
GBDeviceApp app = mPBWReader.getGBDeviceApp();
|
GBDeviceApp app = mPBWReader.getGBDeviceApp();
|
||||||
File pbwFile = new File(mUri.getPath());
|
|
||||||
try {
|
try {
|
||||||
File destDir = new File(FileUtils.getExternalFilesDir() + "/pbw-cache");
|
File destDir = new File(FileUtils.getExternalFilesDir() + "/pbw-cache");
|
||||||
destDir.mkdirs();
|
destDir.mkdirs();
|
||||||
FileUtils.copyFile(pbwFile, new File(destDir + "/" + app.getUUID().toString() + ".pbw"));
|
FileUtils.copyURItoFile(mContext, mUri, new File(destDir + "/" + app.getUUID().toString() + ".pbw"));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
LOG.error("Installation failed: " + e.getMessage(), e);
|
LOG.error("Installation failed: " + e.getMessage(), e);
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
package nodomain.freeyourgadget.gadgetbridge.util;
|
package nodomain.freeyourgadget.gadgetbridge.util;
|
||||||
|
|
||||||
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.net.Uri;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import java.io.BufferedInputStream;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
@ -42,6 +45,25 @@ public class FileUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void copyURItoFile(Context ctx, Uri uri, File destFile) throws IOException {
|
||||||
|
ContentResolver cr = ctx.getContentResolver();
|
||||||
|
InputStream fin;
|
||||||
|
try {
|
||||||
|
fin = new BufferedInputStream(cr.openInputStream(uri));
|
||||||
|
} catch (FileNotFoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
FileOutputStream fout = new FileOutputStream(destFile);
|
||||||
|
byte[] buf = new byte[4096];
|
||||||
|
while (fin.available() > 0) {
|
||||||
|
int bytes = fin.read(buf);
|
||||||
|
fout.write(buf, 0, bytes);
|
||||||
|
}
|
||||||
|
fin.close();
|
||||||
|
fout.close();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the existing external storage dir. The directory is guaranteed to
|
* Returns the existing external storage dir. The directory is guaranteed to
|
||||||
* exist and to be writable.
|
* exist and to be writable.
|
||||||
@ -78,9 +100,10 @@ public class FileUtils {
|
|||||||
* Returns a list of directories to write to. The list is sorted by priority,
|
* Returns a list of directories to write to. The list is sorted by priority,
|
||||||
* i.e. the first directory should be preferred, the last one is the least
|
* i.e. the first directory should be preferred, the last one is the least
|
||||||
* preferred one.
|
* preferred one.
|
||||||
*
|
* <p/>
|
||||||
* Note that the directories may not exist, so it is not guaranteed that you
|
* Note that the directories may not exist, so it is not guaranteed that you
|
||||||
* can actually write to them. But when created, they *should* be writable.
|
* can actually write to them. But when created, they *should* be writable.
|
||||||
|
*
|
||||||
* @return the list of writable directories
|
* @return the list of writable directories
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user