Skip to content

Replace getDefaultSharedPreferences by getSharedPreferences #478

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 3 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ dependencies {
implementation 'org.slf4j:slf4j-android:1.7.30'
implementation 'org.apache.commons:commons-io:1.3.2'
implementation 'androidx.core:core:1.15.0'
implementation "androidx.preference:preference:1.2.1"
implementation 'androidx.constraintlayout:constraintlayout:2.2.0'
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.7.0'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
package net.osmtracker.layouts;

import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.action.ViewActions.longClick;
import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
import static net.osmtracker.util.TestUtils.checkToastIsShownWith;
import static net.osmtracker.util.TestUtils.getLayoutsDirectory;
import static net.osmtracker.util.TestUtils.getStringResource;
import static net.osmtracker.util.TestUtils.injectMockLayout;
import static net.osmtracker.util.TestUtils.listFiles;
import static org.apache.commons.io.FileUtils.deleteDirectory;
import static org.hamcrest.Matchers.equalToIgnoringCase;
import static org.junit.Assert.assertFalse;

import android.Manifest;

import androidx.test.rule.ActivityTestRule;
import androidx.test.rule.GrantPermissionRule;

import net.osmtracker.OSMTracker;
import net.osmtracker.R;
import net.osmtracker.activity.ButtonsPresets;
import net.osmtracker.activity.Preferences;
import net.osmtracker.util.CustomLayoutsUtils;
import net.osmtracker.util.TestUtils;

import org.junit.Rule;
import org.junit.Test;

import java.io.IOException;
import java.util.ArrayList;

import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.action.ViewActions.longClick;
import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist;
import static androidx.test.espresso.matcher.ViewMatchers.withText;
import static net.osmtracker.util.TestUtils.checkToastIsShownWith;
import static net.osmtracker.util.TestUtils.getLayoutsDirectory;
import static net.osmtracker.util.TestUtils.getStringResource;
import static net.osmtracker.util.TestUtils.injectMockLayout;
import static net.osmtracker.util.TestUtils.listFiles;
import static org.hamcrest.Matchers.equalToIgnoringCase;
import static org.junit.Assert.assertFalse;
import static org.apache.commons.io.FileUtils.deleteDirectory;


public class DeleteLayoutTest {

Expand Down Expand Up @@ -91,7 +91,7 @@ public void layoutDeletionTest(){
assertFalse(filesAfterDeletion.contains(layoutFileName));

// Check the icons folder was deleted
assertFalse(filesAfterDeletion.contains(layoutName+ Preferences.ICONS_DIR_SUFFIX));
assertFalse(filesAfterDeletion.contains(layoutName + OSMTracker.ICONS_DIR_SUFFIX));

}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package net.osmtracker.layouts;

import static android.content.Context.MODE_PRIVATE;
import static androidx.test.espresso.Espresso.onData;
import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.Espresso.openActionBarOverflowOrOptionsMenu;
Expand All @@ -16,8 +17,8 @@
import static net.osmtracker.util.WaitForView.waitForView;

import android.Manifest;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;

import androidx.test.espresso.Espresso;
import androidx.test.rule.ActivityTestRule;
Expand Down Expand Up @@ -50,9 +51,9 @@ public class DownloadLayoutTest {
@Override
protected void beforeActivityLaunched() {
// Skip cool intro
SharedPreferences dtPrefs = PreferenceManager
.getDefaultSharedPreferences(getInstrumentation().getTargetContext());
dtPrefs.edit().putBoolean(OSMTracker.Preferences.KEY_DISPLAY_APP_INTRO, false).apply();
Context context = getInstrumentation().getTargetContext();
SharedPreferences prefs = context.getSharedPreferences(context.getString(R.string.shared_pref), MODE_PRIVATE);
prefs.edit().putBoolean(OSMTracker.Preferences.KEY_DISPLAY_APP_INTRO, false).apply();
}
};

Expand Down
16 changes: 9 additions & 7 deletions app/src/androidTest/java/net/osmtracker/util/TestUtils.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package net.osmtracker.util;

import static android.content.Context.MODE_PRIVATE;
import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
import static net.osmtracker.util.LogcatHelper.checkLogForMessage;

import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;

import androidx.test.platform.app.InstrumentationRegistry;

import net.osmtracker.OSMTracker;
import net.osmtracker.activity.Preferences;
import net.osmtracker.R;
import net.osmtracker.data.Mocks;

import java.io.File;
Expand Down Expand Up @@ -66,7 +67,7 @@ public static void injectMockLayout(String layoutName, String ISOLangCode) {
writeToFile(newLayout, Mocks.MOCK_LAYOUT_CONTENT);

// Create the icons directory
File iconsDir = createDirectory(layoutsDir, layoutName + Preferences.ICONS_DIR_SUFFIX);
File iconsDir = createDirectory(layoutsDir, layoutName + OSMTracker.ICONS_DIR_SUFFIX);

// And put some mock files inside
int pngsToCreate = 4;
Expand Down Expand Up @@ -109,7 +110,7 @@ public static File getAppDirectory(){
*/
public static File getLayoutsDirectory(){
String appDirectory = getAppDirectory().getAbsolutePath();
File layoutsDirectory = new File(appDirectory + File.separator + Preferences.LAYOUTS_SUBDIR);
File layoutsDirectory = new File(appDirectory + File.separator + OSMTracker.LAYOUTS_SUBDIR);
layoutsDirectory.mkdirs();
return layoutsDirectory;
}
Expand All @@ -126,12 +127,13 @@ public static String getStringResource(int resourceId){
}

public static void setGithubRepositorySettings(String user, String repo, String branch){
Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
Context context = getInstrumentation().getTargetContext();
SharedPreferences prefs = context.getSharedPreferences(context.getString(R.string.shared_pref), MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(OSMTracker.Preferences.KEY_GITHUB_USERNAME, user);
editor.putString(OSMTracker.Preferences.KEY_REPOSITORY_NAME, repo);
editor.putString(OSMTracker.Preferences.KEY_BRANCH_NAME, branch);
editor.commit();
editor.apply();
}

public static void setLayoutsTestingRepository(){
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@
android:label="@string/tracklogger"
android:launchMode="singleTop" />
<activity
android:name=".activity.Preferences"
android:name=".activity.SettingsActivity"
android:theme="@style/AppTheme"
android:label="@string/prefs" />
<activity
android:name=".activity.WaypointList"
Expand Down
30 changes: 20 additions & 10 deletions app/src/main/java/net/osmtracker/OSMTracker.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public static final class Preferences {

// Default values
public final static String VAL_STORAGE_DIR = "/osmtracker";
public final static String VAL_VOICEREC_DURATION = "2";
public final static int VAL_VOICEREC_DURATION = 2;
public final static String VAL_UI_THEME = "net.osmtracker:style/DefaultTheme";
public final static boolean VAL_GPS_CHECKSTARTUP = true;
public final static boolean VAL_GPS_IGNORE_CLOCK = false;
Expand Down Expand Up @@ -101,10 +101,8 @@ public static final class Preferences {

// intro flag
public final static boolean VAL_DISPLAY_APP_INTRO = true;
}


};

/**
* The full Package name of OSMTracker returned by calling
* OSMTracker.class.getPackage().getName()
Expand Down Expand Up @@ -157,17 +155,29 @@ public static final class Preferences {
* in meters, and HDOP is obtained by dividing accuracy by this factor.
* The value is totally false (!), but is still useful for certain use case like
* track display in JOSM.
* See: http://code.google.com/p/osmtracker-android/issues/detail?id=15
* See: <a href="https://github.com/labexp/osmtracker-android/pull/15">PR #15</a>
*/
public final static int HDOP_APPROXIMATION_FACTOR = 4;

/**
* time (in ms) we use to handle a key press as a long press
*/
public final static long LONG_PRESS_TIME = 1000;

/** Device string identifiers */
public static final class Devices {
public static final String NEXUS_S = "Nexus S";
}

/**
* Directory containing user layouts, relative to storage dir.
*/
public static final String LAYOUTS_SUBDIR = "layouts";

/**
* File extension for layout files
*/
public static final String LAYOUT_FILE_EXTENSION = ".xml";

/**
* The suffix that must be added to the layout's name for getting its icons directory
* Example: water_supply <- layout name
* water_supply_icons <- icon directory
*/
public static final String ICONS_DIR_SUFFIX = "_icons";
}
29 changes: 12 additions & 17 deletions app/src/main/java/net/osmtracker/activity/About.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
package net.osmtracker.activity;

import net.osmtracker.OSMTracker;
import net.osmtracker.R;
import net.osmtracker.db.DatabaseHelper;
import net.osmtracker.db.ExportDatabaseTask;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
Expand All @@ -15,12 +10,15 @@
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.os.Environment;
import android.preference.PreferenceManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

import net.osmtracker.OSMTracker;
import net.osmtracker.R;
import net.osmtracker.db.DatabaseHelper;
import net.osmtracker.db.ExportDatabaseTask;

import java.io.File;

/**
Expand Down Expand Up @@ -75,13 +73,11 @@ public void onClick(DialogInterface dialog, int which) {
public void onClick(View view) {
showDialog(DIALOG_EXPORT_DB);

SharedPreferences prefs = getSharedPreferences(getString(R.string.shared_pref), MODE_PRIVATE);
File dbFile = getDatabasePath(DatabaseHelper.DB_NAME);
File targetFolder = new File(
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS),
//Environment.getExternalStorageDirectory(),
PreferenceManager.getDefaultSharedPreferences(About.this).getString(
OSMTracker.Preferences.KEY_STORAGE_DIR,
OSMTracker.Preferences.VAL_STORAGE_DIR));
String storageDir = prefs.getString(OSMTracker.Preferences.KEY_STORAGE_DIR, OSMTracker.Preferences.VAL_STORAGE_DIR);
File publicDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
File targetFolder = new File(publicDirectory, storageDir);

new ExportDatabaseTask(About.this, targetFolder)
.execute(dbFile);
Expand Down Expand Up @@ -129,11 +125,10 @@ public ProgressDialog getExportDbProgressDialog() {

private String getDebugInfo() {
File externalStorageDir = this.getExternalFilesDir(null);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String exportDirectoryNameInPreferences = preferences.getString(
OSMTracker.Preferences.KEY_STORAGE_DIR, OSMTracker.Preferences.VAL_STORAGE_DIR);
SharedPreferences prefs = getSharedPreferences(getString(R.string.shared_pref), MODE_PRIVATE);
String exportDirectoryName = prefs.getString(OSMTracker.Preferences.KEY_STORAGE_DIR, OSMTracker.Preferences.VAL_STORAGE_DIR);
File baseExportDirectory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS),
exportDirectoryNameInPreferences);
exportDirectoryName);
return "External Storage Directory: '" + externalStorageDir + "'\n"
+ "External Storage State: '" + Environment.getExternalStorageState() + "'\n"
+ "Can write to external storage: "
Expand Down
Loading
Loading