Skip to content

Instantly share code, notes, and snippets.

@julioz
julioz / AppEdit.java
Created April 27, 2016 00:42
Fórmula de um AppEdit
AndroidPublisher publisher = ...
Edits edits = publisher.edits();
// insert, get, delete
AppEdit appEdit = edits.insert(PACKAGE, null).execute();
String transactionId = appEdit.getId();
...
...
@julioz
julioz / ContinuousDeployDemoTrackAssignment.java
Created April 27, 2016 01:18
Atribuição à Trilha de Release
Tracks tracks = edits.tracks();
List<Integer> versions = Collections.singletonList(versionCode);
Track track = new Track().setVersionCodes(versions);
tracks.update(PACKAGE, transactionId, trackId, track).execute();
private static final String APK_MIME_TYPE = "application/vnd.android.package-archive";
...
Edits edits = publisher.edits();
Apks apks = edits.apks();
File apkFile = new File(APP_APK_PATH); // File pointing to the new APK to be uploaded
FileContent apkContent = new FileContent(APK_MIME_TYPE, apkFile);
Apk apk = apks.upload(PACKAGE, transactionId, apkContent).execute();
int versionCode = apk.getVersionCode();
@julioz
julioz / ContinuousDeployDemoWhatsNewUpdate.java
Last active April 27, 2016 02:15
Atualização do What's new
Apklistings apklistings = edits.apklistings();
ApkListing whatsnew = new ApkListing().setRecentChanges(whatsNewDescription);
apklistings.update(PACKAGE, transactionId, versionCode, language, whatsnew).execute();
@julioz
julioz / ContinuousDeployDemoFullAppUpdate.java
Created April 27, 2016 02:19
Rotina de atualização de um app
Edits edits = publisher.edits();
Apks apks = edits.apks();
File apkFile = new File(APP_APK_PATH);
FileContent apkContent = new FileContent(APK_MIME_TYPE, apkFile);
Apk apk = apks.upload(PACKAGE, transactionId, apkContent).execute();
int versionCode = apk.getVersionCode();
Tracks tracks = edits.tracks();
List<Integer> versions = Collections.singletonList(versionCode);
Track track = new Track().setVersionCodes(versions);
@julioz
julioz / output-sample-rate.kt
Created June 14, 2018 13:44
Fetch the optimal output sample rate for the Android device's DAC
val audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
val outputSampleRate = audioManager.getProperty(AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE).toLong()
val audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
val framesPerBuffer = audioManager.getProperty(AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER).toLong()
@julioz
julioz / decrypt-mount-bitlocker-disk
Created April 26, 2019 16:15
Decrypt BitLocker disk on Mac OS (tested on High Sierra)
diskutil list # find the parition ID marked as Windows NTFS disk
# if ID is disk3s1, then, input disk password after running
sudo dislocker -V /dev/disk3s1 -u -- externalhdd/
# this will output partition reference
sudo hdiutil attach -imagekey diskimage-class=CRawDiskImage -nomount externalhdd/dislocker-file
# Create disk directory
sudo mkdir /Volumes/ExternalHDD
@julioz
julioz / AndroidManifest.xml
Created October 27, 2019 10:54
mediaProjection service declaration
<manifest ...>
...
<application >
<service
android:name=".AudioCaptureService"
android:foregroundServiceType="mediaProjection" />
...
</application>
</manifest>
@julioz
julioz / AndroidManifest.xml
Created October 27, 2019 11:09
uses-permissions for audio capture
<manifest>
...
<uses-permission android:name="android.permission.RECORD_AUDIO />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
...
</manifest>