Changeset View
Changeset View
Standalone View
Standalone View
src/it/reyboz/bustorino/middleware/GeneralActivity.java
package it.reyboz.bustorino.middleware; | package it.reyboz.bustorino.middleware; | ||||
import android.Manifest; | import android.Manifest; | ||||
import android.content.Context; | import android.content.Context; | ||||
import android.content.Intent; | |||||
import android.content.SharedPreferences; | import android.content.SharedPreferences; | ||||
import android.content.pm.PackageManager; | import android.content.pm.PackageManager; | ||||
import android.content.res.Resources; | import android.content.res.Resources; | ||||
import android.graphics.Rect; | |||||
import android.net.ConnectivityManager; | import android.net.ConnectivityManager; | ||||
import android.net.NetworkInfo; | import android.net.NetworkInfo; | ||||
import com.google.android.material.snackbar.Snackbar; | import com.google.android.material.snackbar.Snackbar; | ||||
import androidx.annotation.Nullable; | |||||
import androidx.core.app.ActivityCompat; | import androidx.core.app.ActivityCompat; | ||||
import androidx.core.content.ContextCompat; | import androidx.core.content.ContextCompat; | ||||
import androidx.appcompat.app.AppCompatActivity; | import androidx.appcompat.app.AppCompatActivity; | ||||
import android.util.Log; | import android.util.Log; | ||||
import android.view.View; | import android.view.View; | ||||
import android.view.inputmethod.InputMethodManager; | import android.view.inputmethod.InputMethodManager; | ||||
import android.widget.Toast; | import android.widget.Toast; | ||||
import java.util.HashMap; | import java.util.HashMap; | ||||
import it.reyboz.bustorino.R; | import it.reyboz.bustorino.R; | ||||
import it.reyboz.bustorino.backend.utils; | |||||
/** | /** | ||||
* Activity class that contains all the generally useful methods | * Activity class that contains all the generally useful methods | ||||
*/ | */ | ||||
public abstract class GeneralActivity extends AppCompatActivity { | public abstract class GeneralActivity extends AppCompatActivity { | ||||
final static protected int PERMISSION_REQUEST_POSITION = 33; | final static protected int PERMISSION_REQUEST_POSITION = 33; | ||||
final static protected String LOCATION_PERMISSION_GIVEN = "loc_permission"; | final static protected String LOCATION_PERMISSION_GIVEN = "loc_permission"; | ||||
final static protected int STORAGE_PERMISSION_REQ = 291; | final static protected int STORAGE_PERMISSION_REQ = 291; | ||||
▲ Show 20 Lines • Show All 45 Lines • ▼ Show 20 Lines | public int askForPermissionIfNeeded(String permission, int requestID){ | ||||
} | } | ||||
//need to ask for the permission | //need to ask for the permission | ||||
//consider scenario when we have already asked for permission | //consider scenario when we have already asked for permission | ||||
boolean alreadyAsked = false; | boolean alreadyAsked = false; | ||||
Integer num_trials = 0; | Integer num_trials = 0; | ||||
synchronized (this){ | synchronized (this){ | ||||
if (permissionAsked.containsKey(permission)){ | if (permissionAsked.containsKey(permission)){ | ||||
num_trials = permissionAsked.get(permission); | num_trials = permissionAsked.get(permission); | ||||
if (num_trials != null && num_trials > 3) | if (num_trials != null && num_trials > 4) | ||||
alreadyAsked = true; | alreadyAsked = true; | ||||
} | } | ||||
} | } | ||||
Log.d(DEBUG_TAG,"Already asked for permission: "+permission+" -> "+num_trials); | Log.d(DEBUG_TAG,"Already asked for permission: "+permission+" -> "+num_trials); | ||||
if(!alreadyAsked){ | if(!alreadyAsked){ | ||||
ActivityCompat.requestPermissions(this,new String[]{permission}, requestID); | ActivityCompat.requestPermissions(this,new String[]{permission}, requestID); | ||||
Show All 23 Lines | public void assertPermissions(String[] permissions){ | ||||
if(ContextCompat.checkSelfPermission(getApplicationContext(),permissions[i])!=PackageManager.PERMISSION_GRANTED){ | if(ContextCompat.checkSelfPermission(getApplicationContext(),permissions[i])!=PackageManager.PERMISSION_GRANTED){ | ||||
permissionstoRequest.add(permissions[i]); | permissionstoRequest.add(permissions[i]); | ||||
} | } | ||||
} | } | ||||
ActivityCompat.requestPermissions(this,permissionstoRequest.toArray(new String[permissionstoRequest])); | ActivityCompat.requestPermissions(this,permissionstoRequest.toArray(new String[permissionstoRequest])); | ||||
} | } | ||||
*/ | */ | ||||
//KEYBOARD STUFF | |||||
protected View getRootView() { | |||||
return findViewById(android.R.id.content); | |||||
} | |||||
/** | |||||
* This method doesn't work, DO NOT USE | |||||
* @return if the keyboard is open | |||||
* TODO: fix this if you want | |||||
*/ | |||||
@Deprecated | |||||
public Boolean isKeyboardOpen(){ | |||||
Rect visibleBounds = new Rect(); | |||||
this.getRootView().getWindowVisibleDisplayFrame(visibleBounds); | |||||
double heightDiff = getRootView().getHeight() - visibleBounds.height(); | |||||
final double marginOfError = Math.round(utils.convertDipToPixels(this,50f)); | |||||
return heightDiff > marginOfError; | |||||
} | |||||
@Override | |||||
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { | |||||
super.onActivityResult(requestCode, resultCode, data); | |||||
} | |||||
} | } |
Public contents are in Creative Commons Attribution-ShareAlike 4.0 (CC-BY-SA) or GNU Free Documentation License (at your option) unless otherwise noted. · Contact / Register