From 37a9cb0b226eac84c9661bc72b9906102c46db00 Mon Sep 17 00:00:00 2001 From: "ioannis.ioannidis" Date: Thu, 23 Jun 2022 09:36:06 +0100 Subject: [PATCH 1/9] stricto mode violation exception prevention --- .../com/skydoves/powermenu/MenuPreferenceManager.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java index 243c36f..abd2c3a 100644 --- a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java +++ b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java @@ -27,8 +27,14 @@ class MenuPreferenceManager { private final SharedPreferences sharedPreferences; private MenuPreferenceManager(Context context) { - sharedPreferences = - context.getSharedPreferences("com.skydoves.powermenu", Context.MODE_PRIVATE); + // Temporarily allow disk writes to avoid Strict mode exception + StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); + StrictMode.allowThreadDiskWrites(); + try { + sharedPreferences = context.getSharedPreferences("com.skydoves.powermenu", Context.MODE_PRIVATE); + } finally { + StrictMode.setThreadPolicy(oldPolicy); + } } /** From 66c92e1de1edf94f6932efd3389759c9a7c69871 Mon Sep 17 00:00:00 2001 From: "ioannis.ioannidis" Date: Thu, 23 Jun 2022 10:32:59 +0100 Subject: [PATCH 2/9] import --- .../main/java/com/skydoves/powermenu/MenuPreferenceManager.java | 1 + 1 file changed, 1 insertion(+) diff --git a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java index abd2c3a..df49130 100644 --- a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java +++ b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java @@ -18,6 +18,7 @@ import android.content.Context; import android.content.SharedPreferences; +import android.os.StrictMode; @SuppressWarnings({"unused"}) class MenuPreferenceManager { From a000fe355a8eb91c7bb3b59906fb406e803816c3 Mon Sep 17 00:00:00 2001 From: "ioannis.ioannidis" Date: Fri, 24 Jun 2022 16:16:02 +0100 Subject: [PATCH 3/9] removed comment --- .../powermenu/MenuPreferenceManager.java | 112 +++++++++--------- 1 file changed, 54 insertions(+), 58 deletions(-) diff --git a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java index df49130..d6ddfe4 100644 --- a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java +++ b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java @@ -20,71 +20,67 @@ import android.content.SharedPreferences; import android.os.StrictMode; -@SuppressWarnings({"unused"}) +@SuppressWarnings({ "unused" }) class MenuPreferenceManager { - private static final String position = "_POSITION"; - private static MenuPreferenceManager menuPreferenceManager; - private final SharedPreferences sharedPreferences; + private static final String position = "_POSITION"; + private static MenuPreferenceManager menuPreferenceManager; + private final SharedPreferences sharedPreferences; - private MenuPreferenceManager(Context context) { - // Temporarily allow disk writes to avoid Strict mode exception - StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); - StrictMode.allowThreadDiskWrites(); - try { - sharedPreferences = context.getSharedPreferences("com.skydoves.powermenu", Context.MODE_PRIVATE); - } finally { - StrictMode.setThreadPolicy(oldPolicy); + private MenuPreferenceManager(Context context) { + StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); + StrictMode.allowThreadDiskWrites(); + sharedPreferences = context.getSharedPreferences("com.skydoves.powermenu", Context.MODE_PRIVATE); + StrictMode.setThreadPolicy(oldPolicy); } - } - /** - * initialize the {@link MenuPreferenceManager} instance. - * - * @param context context. - */ - protected static void initialize(Context context) { - menuPreferenceManager = new MenuPreferenceManager(context); - } + /** + * initialize the {@link MenuPreferenceManager} instance. + * + * @param context context. + */ + protected static void initialize(Context context) { + menuPreferenceManager = new MenuPreferenceManager(context); + } - /** - * gets an instance of the {@link MenuPreferenceManager}. - * - *

It must be called after invoking initialize() method. - * - * @return {@link MenuPreferenceManager}. - */ - protected static MenuPreferenceManager getInstance() { - return menuPreferenceManager; - } + /** + * gets an instance of the {@link MenuPreferenceManager}. + * + *

It must be called after invoking initialize() method. + * + * @return {@link MenuPreferenceManager}. + */ + protected static MenuPreferenceManager getInstance() { + return menuPreferenceManager; + } - /** - * gets the saved menu position from preference. - * - * @param name preference name. - * @param defaultPosition default preference menu position. - * @return the saved menu position. - */ - protected int getPosition(String name, int defaultPosition) { - return sharedPreferences.getInt(name, defaultPosition); - } + /** + * gets the saved menu position from preference. + * + * @param name preference name. + * @param defaultPosition default preference menu position. + * @return the saved menu position. + */ + protected int getPosition(String name, int defaultPosition) { + return sharedPreferences.getInt(name, defaultPosition); + } - /** - * saves a menu position on preference. - * - * @param name preference name. - * @param position preference menu position. - */ - protected void setPosition(String name, int position) { - sharedPreferences.edit().putInt(name, position).apply(); - } + /** + * saves a menu position on preference. + * + * @param name preference name. + * @param position preference menu position. + */ + protected void setPosition(String name, int position) { + sharedPreferences.edit().putInt(name, position).apply(); + } - /** - * clears the saved color from preference. - * - * @param name preference name. - */ - protected void clearPosition(String name) { - sharedPreferences.edit().remove(name).apply(); - } + /** + * clears the saved color from preference. + * + * @param name preference name. + */ + protected void clearPosition(String name) { + sharedPreferences.edit().remove(name).apply(); + } } From b94df7ffd3ee16f7ccc7395c4dfa5e29ea680c36 Mon Sep 17 00:00:00 2001 From: "ioannis.ioannidis" Date: Fri, 24 Jun 2022 16:17:07 +0100 Subject: [PATCH 4/9] removed format --- .../skydoves/powermenu/MenuPreferenceManager.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java index d6ddfe4..5a42097 100644 --- a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java +++ b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java @@ -20,7 +20,7 @@ import android.content.SharedPreferences; import android.os.StrictMode; -@SuppressWarnings({ "unused" }) +@SuppressWarnings({"unused"}) class MenuPreferenceManager { private static final String position = "_POSITION"; @@ -30,8 +30,11 @@ class MenuPreferenceManager { private MenuPreferenceManager(Context context) { StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); StrictMode.allowThreadDiskWrites(); - sharedPreferences = context.getSharedPreferences("com.skydoves.powermenu", Context.MODE_PRIVATE); - StrictMode.setThreadPolicy(oldPolicy); + try { + sharedPreferences = context.getSharedPreferences("com.skydoves.powermenu", Context.MODE_PRIVATE); + } finally { + StrictMode.setThreadPolicy(oldPolicy); + } } /** @@ -57,7 +60,7 @@ protected static MenuPreferenceManager getInstance() { /** * gets the saved menu position from preference. * - * @param name preference name. + * @param name preference name. * @param defaultPosition default preference menu position. * @return the saved menu position. */ @@ -68,7 +71,7 @@ protected int getPosition(String name, int defaultPosition) { /** * saves a menu position on preference. * - * @param name preference name. + * @param name preference name. * @param position preference menu position. */ protected void setPosition(String name, int position) { From e1f806ac069ce32240d6ede2cfd044dfafcd3f89 Mon Sep 17 00:00:00 2001 From: "ioannis.ioannidis" Date: Fri, 24 Jun 2022 16:39:41 +0100 Subject: [PATCH 5/9] Revert "removed format" This reverts commit b94df7ffd3ee16f7ccc7395c4dfa5e29ea680c36. --- .../skydoves/powermenu/MenuPreferenceManager.java | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java index 5a42097..d6ddfe4 100644 --- a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java +++ b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java @@ -20,7 +20,7 @@ import android.content.SharedPreferences; import android.os.StrictMode; -@SuppressWarnings({"unused"}) +@SuppressWarnings({ "unused" }) class MenuPreferenceManager { private static final String position = "_POSITION"; @@ -30,11 +30,8 @@ class MenuPreferenceManager { private MenuPreferenceManager(Context context) { StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); StrictMode.allowThreadDiskWrites(); - try { - sharedPreferences = context.getSharedPreferences("com.skydoves.powermenu", Context.MODE_PRIVATE); - } finally { - StrictMode.setThreadPolicy(oldPolicy); - } + sharedPreferences = context.getSharedPreferences("com.skydoves.powermenu", Context.MODE_PRIVATE); + StrictMode.setThreadPolicy(oldPolicy); } /** @@ -60,7 +57,7 @@ protected static MenuPreferenceManager getInstance() { /** * gets the saved menu position from preference. * - * @param name preference name. + * @param name preference name. * @param defaultPosition default preference menu position. * @return the saved menu position. */ @@ -71,7 +68,7 @@ protected int getPosition(String name, int defaultPosition) { /** * saves a menu position on preference. * - * @param name preference name. + * @param name preference name. * @param position preference menu position. */ protected void setPosition(String name, int position) { From 3905915df9c83768b9e4ad0ea09a5af41b2b10bb Mon Sep 17 00:00:00 2001 From: "ioannis.ioannidis" Date: Fri, 24 Jun 2022 16:39:48 +0100 Subject: [PATCH 6/9] Revert "removed comment" This reverts commit a000fe355a8eb91c7bb3b59906fb406e803816c3. --- .../powermenu/MenuPreferenceManager.java | 112 +++++++++--------- 1 file changed, 58 insertions(+), 54 deletions(-) diff --git a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java index d6ddfe4..df49130 100644 --- a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java +++ b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java @@ -20,67 +20,71 @@ import android.content.SharedPreferences; import android.os.StrictMode; -@SuppressWarnings({ "unused" }) +@SuppressWarnings({"unused"}) class MenuPreferenceManager { - private static final String position = "_POSITION"; - private static MenuPreferenceManager menuPreferenceManager; - private final SharedPreferences sharedPreferences; + private static final String position = "_POSITION"; + private static MenuPreferenceManager menuPreferenceManager; + private final SharedPreferences sharedPreferences; - private MenuPreferenceManager(Context context) { - StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); - StrictMode.allowThreadDiskWrites(); - sharedPreferences = context.getSharedPreferences("com.skydoves.powermenu", Context.MODE_PRIVATE); - StrictMode.setThreadPolicy(oldPolicy); + private MenuPreferenceManager(Context context) { + // Temporarily allow disk writes to avoid Strict mode exception + StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); + StrictMode.allowThreadDiskWrites(); + try { + sharedPreferences = context.getSharedPreferences("com.skydoves.powermenu", Context.MODE_PRIVATE); + } finally { + StrictMode.setThreadPolicy(oldPolicy); } + } - /** - * initialize the {@link MenuPreferenceManager} instance. - * - * @param context context. - */ - protected static void initialize(Context context) { - menuPreferenceManager = new MenuPreferenceManager(context); - } + /** + * initialize the {@link MenuPreferenceManager} instance. + * + * @param context context. + */ + protected static void initialize(Context context) { + menuPreferenceManager = new MenuPreferenceManager(context); + } - /** - * gets an instance of the {@link MenuPreferenceManager}. - * - *

It must be called after invoking initialize() method. - * - * @return {@link MenuPreferenceManager}. - */ - protected static MenuPreferenceManager getInstance() { - return menuPreferenceManager; - } + /** + * gets an instance of the {@link MenuPreferenceManager}. + * + *

It must be called after invoking initialize() method. + * + * @return {@link MenuPreferenceManager}. + */ + protected static MenuPreferenceManager getInstance() { + return menuPreferenceManager; + } - /** - * gets the saved menu position from preference. - * - * @param name preference name. - * @param defaultPosition default preference menu position. - * @return the saved menu position. - */ - protected int getPosition(String name, int defaultPosition) { - return sharedPreferences.getInt(name, defaultPosition); - } + /** + * gets the saved menu position from preference. + * + * @param name preference name. + * @param defaultPosition default preference menu position. + * @return the saved menu position. + */ + protected int getPosition(String name, int defaultPosition) { + return sharedPreferences.getInt(name, defaultPosition); + } - /** - * saves a menu position on preference. - * - * @param name preference name. - * @param position preference menu position. - */ - protected void setPosition(String name, int position) { - sharedPreferences.edit().putInt(name, position).apply(); - } + /** + * saves a menu position on preference. + * + * @param name preference name. + * @param position preference menu position. + */ + protected void setPosition(String name, int position) { + sharedPreferences.edit().putInt(name, position).apply(); + } - /** - * clears the saved color from preference. - * - * @param name preference name. - */ - protected void clearPosition(String name) { - sharedPreferences.edit().remove(name).apply(); - } + /** + * clears the saved color from preference. + * + * @param name preference name. + */ + protected void clearPosition(String name) { + sharedPreferences.edit().remove(name).apply(); + } } From dd0ea92cdfc185ef4f668989f259349b49bd16e9 Mon Sep 17 00:00:00 2001 From: "ioannis.ioannidis" Date: Fri, 24 Jun 2022 16:40:17 +0100 Subject: [PATCH 7/9] removed comment --- .../com/skydoves/powermenu/MenuPreferenceManager.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java index df49130..4f7c44d 100644 --- a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java +++ b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java @@ -28,14 +28,10 @@ class MenuPreferenceManager { private final SharedPreferences sharedPreferences; private MenuPreferenceManager(Context context) { - // Temporarily allow disk writes to avoid Strict mode exception StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); StrictMode.allowThreadDiskWrites(); - try { - sharedPreferences = context.getSharedPreferences("com.skydoves.powermenu", Context.MODE_PRIVATE); - } finally { - StrictMode.setThreadPolicy(oldPolicy); - } + sharedPreferences = context.getSharedPreferences("com.skydoves.powermenu", Context.MODE_PRIVATE); + StrictMode.setThreadPolicy(oldPolicy); } /** From f3926e44c25099a8c10ed944c139ca6664ace415 Mon Sep 17 00:00:00 2001 From: "ioannis.ioannidis" Date: Tue, 26 Jul 2022 15:12:36 +0100 Subject: [PATCH 8/9] formatting (added new line) --- .../java/com/skydoves/powermenu/MenuPreferenceManager.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java index 4f7c44d..29dc39c 100644 --- a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java +++ b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java @@ -30,7 +30,8 @@ class MenuPreferenceManager { private MenuPreferenceManager(Context context) { StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); StrictMode.allowThreadDiskWrites(); - sharedPreferences = context.getSharedPreferences("com.skydoves.powermenu", Context.MODE_PRIVATE); + sharedPreferences = + context.getSharedPreferences("com.skydoves.powermenu", Context.MODE_PRIVATE); StrictMode.setThreadPolicy(oldPolicy); } From 8d18e0079e988e9a6f4722d4c81137096ce60aa1 Mon Sep 17 00:00:00 2001 From: "ioannis.ioannidis" Date: Thu, 29 Dec 2022 12:58:33 +0000 Subject: [PATCH 9/9] move shared prefs init out of constructor --- .../skydoves/powermenu/AbstractPowerMenu.java | 10 +++--- .../skydoves/powermenu/CustomPowerMenu.java | 2 +- .../skydoves/powermenu/MenuBaseAdapter.java | 10 ++++-- .../powermenu/MenuPreferenceManager.java | 34 +++++++++---------- 4 files changed, 31 insertions(+), 25 deletions(-) diff --git a/powermenu/src/main/java/com/skydoves/powermenu/AbstractPowerMenu.java b/powermenu/src/main/java/com/skydoves/powermenu/AbstractPowerMenu.java index d435ccd..3b1fd0b 100644 --- a/powermenu/src/main/java/com/skydoves/powermenu/AbstractPowerMenu.java +++ b/powermenu/src/main/java/com/skydoves/powermenu/AbstractPowerMenu.java @@ -84,6 +84,7 @@ public abstract class AbstractPowerMenu> protected boolean fixedHeight = false; protected boolean isShowing = false; + private Context mContext; @Px protected int contentViewPadding; private int defaultPosition; @@ -190,7 +191,8 @@ protected void initialize(Context context, Boolean isMaterial) { setOnMenuItemClickListener(onMenuItemClickListener); contentViewPadding = ConvertUtil.convertDpToPixel(10, context); - MenuPreferenceManager.initialize(context); + MenuPreferenceManager.initialize(); + mContext = context; } /** @@ -1102,7 +1104,7 @@ public String getPreferenceName() { */ public int getPreferencePosition(int defaultPosition) { return MenuPreferenceManager.getInstance() - .getPosition(getAdapter().getPreferenceName(), defaultPosition); + .getPosition(mContext, getAdapter().getPreferenceName(), defaultPosition); } /** @@ -1113,7 +1115,7 @@ public int getPreferencePosition(int defaultPosition) { public void setPreferencePosition(int defaultPosition) { MenuPreferenceManager instance = MenuPreferenceManager.getInstance(); if (instance != null && getPreferenceName() != null) { - instance.setPosition(getPreferenceName(), defaultPosition); + instance.setPosition(mContext, getPreferenceName(), defaultPosition); } } @@ -1129,7 +1131,7 @@ private void setPreferenceName(@NonNull String preferenceName) { /** clears the preference name of PowerMenu. */ public void clearPreference() { if (getAdapter().getPreferenceName() != null) { - MenuPreferenceManager.getInstance().clearPosition(getAdapter().getPreferenceName()); + MenuPreferenceManager.getInstance().clearPosition(mContext, getAdapter().getPreferenceName()); } } diff --git a/powermenu/src/main/java/com/skydoves/powermenu/CustomPowerMenu.java b/powermenu/src/main/java/com/skydoves/powermenu/CustomPowerMenu.java index 38b14b8..8f46874 100644 --- a/powermenu/src/main/java/com/skydoves/powermenu/CustomPowerMenu.java +++ b/powermenu/src/main/java/com/skydoves/powermenu/CustomPowerMenu.java @@ -75,7 +75,7 @@ protected void initialize(@NonNull Context context, Boolean isMaterial) { } else { binding = LayoutPowerMenuLibrarySkydovesBinding.inflate(layoutInflater, null, false); } - this.adapter = (E) (new MenuBaseAdapter<>(menuListView)); + this.adapter = (E) (new MenuBaseAdapter<>(menuListView, context)); super.initialize(context, isMaterial); } diff --git a/powermenu/src/main/java/com/skydoves/powermenu/MenuBaseAdapter.java b/powermenu/src/main/java/com/skydoves/powermenu/MenuBaseAdapter.java index 9ef595b..5b5915f 100644 --- a/powermenu/src/main/java/com/skydoves/powermenu/MenuBaseAdapter.java +++ b/powermenu/src/main/java/com/skydoves/powermenu/MenuBaseAdapter.java @@ -16,6 +16,7 @@ package com.skydoves.powermenu; +import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; @@ -31,16 +32,19 @@ public class MenuBaseAdapter extends BaseAdapter implements IMenuItem { private int selectedPosition = -1; private String preferenceName; + private Context mContext; - public MenuBaseAdapter() { + public MenuBaseAdapter(Context context) { super(); this.itemList = new ArrayList<>(); + mContext = context; } - public MenuBaseAdapter(ListView listView) { + public MenuBaseAdapter(ListView listView, Context context) { super(); this.itemList = new ArrayList<>(); this.listView = listView; + mContext = context; } @Override @@ -100,7 +104,7 @@ public void setSelectedPosition(int position) { MenuPreferenceManager instance = MenuPreferenceManager.getInstance(); if (instance != null && preferenceName != null) { - instance.setPosition(preferenceName, position); + instance.setPosition(mContext, preferenceName, position); } } diff --git a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java index 29dc39c..83e20ad 100644 --- a/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java +++ b/powermenu/src/main/java/com/skydoves/powermenu/MenuPreferenceManager.java @@ -18,30 +18,29 @@ import android.content.Context; import android.content.SharedPreferences; -import android.os.StrictMode; @SuppressWarnings({"unused"}) class MenuPreferenceManager { private static final String position = "_POSITION"; private static MenuPreferenceManager menuPreferenceManager; - private final SharedPreferences sharedPreferences; + private static SharedPreferences sharedPreferences; - private MenuPreferenceManager(Context context) { - StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); - StrictMode.allowThreadDiskWrites(); - sharedPreferences = - context.getSharedPreferences("com.skydoves.powermenu", Context.MODE_PRIVATE); - StrictMode.setThreadPolicy(oldPolicy); + public static SharedPreferences getSharedPrefsInstance(Context context) + { + if (sharedPreferences == null) { + sharedPreferences = context.getSharedPreferences("com.skydoves.powermenu", Context.MODE_PRIVATE); + } + return sharedPreferences; } /** * initialize the {@link MenuPreferenceManager} instance. * - * @param context context. + * */ - protected static void initialize(Context context) { - menuPreferenceManager = new MenuPreferenceManager(context); + protected static void initialize() { + menuPreferenceManager = new MenuPreferenceManager(); } /** @@ -58,12 +57,13 @@ protected static MenuPreferenceManager getInstance() { /** * gets the saved menu position from preference. * + * @param context * @param name preference name. * @param defaultPosition default preference menu position. * @return the saved menu position. */ - protected int getPosition(String name, int defaultPosition) { - return sharedPreferences.getInt(name, defaultPosition); + protected int getPosition(Context context, String name, int defaultPosition) { + return getSharedPrefsInstance(context).getInt(name, defaultPosition); } /** @@ -72,8 +72,8 @@ protected int getPosition(String name, int defaultPosition) { * @param name preference name. * @param position preference menu position. */ - protected void setPosition(String name, int position) { - sharedPreferences.edit().putInt(name, position).apply(); + protected void setPosition(Context context, String name, int position) { + getSharedPrefsInstance(context).edit().putInt(name, position).apply(); } /** @@ -81,7 +81,7 @@ protected void setPosition(String name, int position) { * * @param name preference name. */ - protected void clearPosition(String name) { - sharedPreferences.edit().remove(name).apply(); + protected void clearPosition(Context context, String name) { + getSharedPrefsInstance(context).edit().remove(name).apply(); } }