Skip to content

Instantly share code, notes, and snippets.

View emilieroberts's full-sized avatar

Emilie Roberts emilieroberts

View GitHub Profile
@emilieroberts
emilieroberts / DragListenerEmpty.kt
Created October 21, 2021 10:00
Android on Chrome OS - Empty drag listener kotlin
inner class DropTargetListener : View.OnDragListener {
override fun onDrag(view: View, event: DragEvent): Boolean {
return when(event.action) {
ACTION_DRAG_STARTED -> {
true
}
ACTION_DRAG_ENTERED -> {
true
}
ACTION_DRAG_LOCATION -> {
@emilieroberts
emilieroberts / keyboard_support.kt
Created August 15, 2019 18:04
Keyboard support example for Android on Chrome OS
override fun onKeyUp(code: Int, ev: KeyEvent?): Boolean {
return when (code) {
KeyEvent.KEYCODE_J -> {
// Do something here
true
}
else -> super.onKeyUp(code, ev) // Important
}
}
@emilieroberts
emilieroberts / lpt_cleanup.java
Created August 9, 2018 18:45
Cleanup subscription database using linkedPurchaseToken
int cleanUpTokens() {
int numTokensDisabled = 0;
for (subscription in entitlementDb) {
if (subscription.linkedPurchaseToken) {
if (invalidateToken(subscription.linkedPurchaseToken))
numTokensDisabled++;
}
}
return numTokensDisabled;
}
@emilieroberts
emilieroberts / lpt_verify.java
Last active October 1, 2020 09:06
Correctly handle linkedPurchaseToken field for incoming purchaseToken (pseudo-code)
boolean onNewPurchaseToken(SubscriptionPurchaseResource newSub) {
if (newSub.linkedPurchaseToken) {
disableSubscription(newSub.linkedPurchaseToken);
}
addAndEnableSubscription(newSub.purchaseToken);
}
@emilieroberts
emilieroberts / add_box_border.java
Created March 13, 2018 22:10
Android on Chrome OS - Box Border
myView.setBackgroundResource(R.drawable.box_border);
@emilieroberts
emilieroberts / box_border.xml
Created March 13, 2018 22:08
Android on Chrome OS - Box Border Background
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true">
<shape android:padding="2dp">
<solid android:color="#FFFFFF" />
<stroke android:width="1dp" android:color="@color/colorAccent" />
<padding android:left="2dp" android:top="2dp" android:right="2dp"
android:bottom="2dp" />
</shape>
</item>
</selector>
@emilieroberts
emilieroberts / context_menu.java
Last active March 12, 2018 23:09
Android on Chrome OS - Context Menu
//Let the UI know this view has a context menu
registerForContextMenu(myView);
. . .
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
@emilieroberts
emilieroberts / tab_key_navigation.java
Created March 9, 2018 01:51
Android on ChromeOS - Tab Key Navigation
myView.setNextFocusForwardId(R.id.next_view);
@emilieroberts
emilieroberts / dragitem.kt
Last active October 21, 2021 10:28
Android on Chrome OS - Drag Item
binding.textDragItem.setOnLongClickListener {
val textView = it as TextView
val dragContent = "Dragged Text: ${textView.text}"
//Set the drag content and type
val item = ClipData.Item(dragContent)
val dragData = ClipData(dragContent, arrayOf(MIMETYPE_TEXT_PLAIN), item)
//Set the visual look of the dragged object
//Can be extended and customized. We use the default here.
@emilieroberts
emilieroberts / target_frame.kt
Last active October 21, 2021 10:25
Android on ChromeOS - Drop Target
binding.textDropTarget.setOnDragListener(DropTargetListener())