Skip to content

Instantly share code, notes, and snippets.

View Suchiq's full-sized avatar

Suchi Bansal Suchiq

View GitHub Profile
@Suchiq
Suchiq / gist:6c174c6563b5315f8a72de21e0a96905
Last active November 9, 2019 18:12
code for Device A (Advertiser)
private void startAdvertising () {
AdvertisingOptions advertisingOptions = new AdvertisingOptions.Builder().setStrategy(STRATEGY).build();
Nearby.getConnectionsClient(BaseApplication.getInstance()
.getActivity()).startAdvertising("Device A", SERVICE_ID, new ConnectionLifecycleCallback() {
@Override
public void onConnectionInitiated(@NonNull String endPointId, @NonNull ConnectionInfo connectionInfo) {
Nearby.getConnectionsClient(BaseApplication.getInstance()
.getActivity().acceptConnection(endPointId, mPayloadCallback);
}
@Override
@Suchiq
Suchiq / gist:f234b8933e1fe4f1a76222ba6a8c848b
Last active November 9, 2019 18:13
Send Payload Method
private void sendPayLoad(final String endPointId) {
Payload bytesPayload = Payload.fromBytes(String.valueOf(timestamp).getBytes());
Nearby.getConnectionsClient(BaseApplication.getInstance()
.getActivity()).sendPayload(endPointId, bytesPayload).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
@Suchiq
Suchiq / gist:789d8abc79f34a4f574b46e8623d5b0c
Last active November 9, 2019 18:15
Code for Device B (Discoverer)
private void startDiscovery() {
DiscoveryOptions discoveryOptions = new DiscoveryOptions.Builder().setStrategy(STRATEGY).build();
Nearby.getConnectionsClient(BaseApplication.getInstance()
.getActivity()).
startDiscovery(SERVICE_ID, new EndpointDiscoveryCallback() {
@Override
public void onEndpointFound(@NonNull String endpointId, @NonNull DiscoveredEndpointInfo discoveredEndpointInfo) {
Nearby.getConnectionsClient(BaseApplication.getInstance()
.getActivity()).
requestConnection("Device B", endpointId, new ConnectionLifecycleCallback() {
@Suchiq
Suchiq / gist:9f00b7f1018ae1bc2ca720b27ae12462
Created November 7, 2019 16:53
Payload receive callback
private final PayloadCallback mPayloadCallback = new PayloadCallback() {
@Override
public void onPayloadReceived(@NonNull String s, @NonNull Payload payload) {
final byte[] receivedBytes = payload.asBytes();
AppUtil.runOnUiThread(new Runnable() {
@Override
public void run() {
long timestamp = System.currentTimeMillis();
long timeTaken=(timestamp-Long.valueOf(new String(receivedBytes)))/1000;
strReceived=strReceived+"\n"+timeTaken +""+" sec"+"\n";
compile ‘com.google.android.gms:play-services-nearby:15.0.0’
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/background_color">
<WebView
android:id="@+id/web_view"
android:layout_width="match_parent"
rootView.setFitsSystemWindows(true);
rootView.setPadding(rootView.getPaddingLeft(), -BaseApplication.getStatusBarHeight(), rootView.getPaddingRight(), rootView.getPaddingBottom());
@Suchiq
Suchiq / gist:2ef2d0d655ed21196c614c64e34adb3e
Created May 4, 2020 16:26
Calculate status bar height
public static int getStatusBarHeight() {
int statusBarHeight = 0;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
int resourceId = getContext().getResources()
.getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
statusBarHeight = getContext().getResources()
.getDimensionPixelSize(resourceId);
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<WebView
android:id="@+id/manager_web_view"
@Suchiq
Suchiq / Permission.Kt
Created June 22, 2021 11:33
For checking runtime permission
val locationPermissionRequest = registerForActivityResult(
ActivityResultContracts.RequestMultiplePermissions()) { permissions ->
when {
permissions.getOrDefault(Manifest.permission.ACCESS_FINE_LOCATION, false) -> {
// Precise location access granted.
}
permissions.getOrDefault(Manifest.permission.ACCESS_COARSE_LOCATION, false) -> {
// Only approximate location access granted.
}
else -> {