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