Skip to content

Commit cb9fefb

Browse files
committed
fix #103: retain menu drawer scroll position after switching activities
1 parent 502a9e4 commit cb9fefb

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

WordPressUtils/src/main/java/org/wordpress/android/util/ListScrollPositionManager.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package org.wordpress.android.util;
22

3+
import android.content.Context;
4+
import android.content.SharedPreferences;
5+
import android.content.SharedPreferences.Editor;
6+
import android.preference.PreferenceManager;
37
import android.view.View;
48
import android.widget.ListView;
59

@@ -33,4 +37,22 @@ public void restoreScrollOffset() {
3337
mListView.setItemChecked(mSelectedPosition, true);
3438
}
3539
}
40+
41+
public void saveToPreferences(Context context, String uniqueId) {
42+
saveScrollOffset();
43+
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
44+
Editor editor = settings.edit();
45+
editor.putInt("scroll-position-manager-index-" + uniqueId, mListViewScrollStateIndex);
46+
editor.putInt("scroll-position-manager-offset-" + uniqueId, mListViewScrollStateOffset);
47+
editor.putInt("scroll-position-manager-selected-position-" + uniqueId, mSelectedPosition);
48+
editor.apply();
49+
}
50+
51+
public void restoreFromPreferences(Context context, String uniqueId) {
52+
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
53+
mListViewScrollStateIndex = settings.getInt("scroll-position-manager-index-" + uniqueId, 0);
54+
mListViewScrollStateOffset = settings.getInt("scroll-position-manager-offset-" + uniqueId, 0);
55+
mSelectedPosition = settings.getInt("scroll-position-manager-selected-position-" + uniqueId, 0);
56+
restoreScrollOffset();
57+
}
3658
}

0 commit comments

Comments
 (0)