Changeset View
Changeset View
Standalone View
Standalone View
app/src/main/java/it/reyboz/bustorino/fragments/ScreenBaseFragment.java
package it.reyboz.bustorino.fragments; | package it.reyboz.bustorino.fragments; | ||||
import android.Manifest; | |||||
import android.content.Context; | import android.content.Context; | ||||
import android.content.SharedPreferences; | import android.content.SharedPreferences; | ||||
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 androidx.activity.result.ActivityResultCallback; | |||||
import androidx.activity.result.ActivityResultLauncher; | |||||
import androidx.activity.result.contract.ActivityResultContracts; | |||||
import androidx.annotation.Nullable; | import androidx.annotation.Nullable; | ||||
import androidx.fragment.app.Fragment; | import androidx.fragment.app.Fragment; | ||||
import com.google.android.material.floatingactionbutton.FloatingActionButton; | |||||
import it.reyboz.bustorino.BuildConfig; | import it.reyboz.bustorino.BuildConfig; | ||||
import java.util.Map; | |||||
import static android.content.Context.MODE_PRIVATE; | import static android.content.Context.MODE_PRIVATE; | ||||
public abstract class ScreenBaseFragment extends Fragment { | public abstract class ScreenBaseFragment extends Fragment { | ||||
protected final static String PREF_FILE= BuildConfig.APPLICATION_ID+".fragment_prefs"; | protected final static String PREF_FILE= BuildConfig.APPLICATION_ID+".fragment_prefs"; | ||||
protected void setOption(String optionName, boolean value) { | protected void setOption(String optionName, boolean value) { | ||||
Context mContext = getContext(); | Context mContext = getContext(); | ||||
Show All 34 Lines | public static boolean getOption(Context context, String optionName, boolean optDefault){ | ||||
SharedPreferences preferences = context.getSharedPreferences(PREF_FILE, MODE_PRIVATE); | SharedPreferences preferences = context.getSharedPreferences(PREF_FILE, MODE_PRIVATE); | ||||
return preferences.getBoolean(optionName, optDefault); | return preferences.getBoolean(optionName, optDefault); | ||||
} | } | ||||
public static void setOption(Context context,String optionName, boolean value) { | public static void setOption(Context context,String optionName, boolean value) { | ||||
SharedPreferences.Editor editor = context.getSharedPreferences(PREF_FILE, MODE_PRIVATE).edit(); | SharedPreferences.Editor editor = context.getSharedPreferences(PREF_FILE, MODE_PRIVATE).edit(); | ||||
editor.putBoolean(optionName, value); | editor.putBoolean(optionName, value); | ||||
editor.apply(); | editor.apply(); | ||||
} | } | ||||
public ActivityResultLauncher<String[]> getPositionRequestLauncher(LocationRequestListener listener){ | |||||
return registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(), new ActivityResultCallback<>() { | |||||
@Override | |||||
public void onActivityResult(Map<String, Boolean> result) { | |||||
if (result == null) return; | |||||
if (result.get(Manifest.permission.ACCESS_COARSE_LOCATION) == null || | |||||
result.get(Manifest.permission.ACCESS_FINE_LOCATION) == null) | |||||
return; | |||||
final boolean coarseGranted = Boolean.TRUE.equals(result.get(Manifest.permission.ACCESS_COARSE_LOCATION)); | |||||
final boolean fineGranted = Boolean.TRUE.equals(result.get(Manifest.permission.ACCESS_FINE_LOCATION)); | |||||
listener.onPermissionResult(coarseGranted, fineGranted); | |||||
} | |||||
}); | |||||
} | |||||
public interface LocationRequestListener{ | |||||
void onPermissionResult(boolean isCoarseGranted, boolean isFineGranted); | |||||
} | |||||
} | } |
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