Revision 19e20990
Added by Leszek Koltunski 2 days ago
| src/main/java/org/distorted/main/MainActivity.java | ||
|---|---|---|
| 63 | 63 |
private int mCurrentObject; |
| 64 | 64 |
private MainScrollGrid mGrid; |
| 65 | 65 |
private int mSortMode; |
| 66 |
private int mSaveMode; |
|
| 66 | 67 |
|
| 67 | 68 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 68 | 69 |
|
| ... | ... | |
| 209 | 210 |
|
| 210 | 211 |
editor.putString("appVersion", mCurrVersion );
|
| 211 | 212 |
editor.putInt("sortMode", mSortMode);
|
| 213 |
editor.putInt("saveMode", mSaveMode);
|
|
| 212 | 214 |
|
| 213 | 215 |
RubikObjectList.savePreferences(editor); |
| 214 | 216 |
editor.apply(); |
| ... | ... | |
| 221 | 223 |
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); |
| 222 | 224 |
mOldVersion = preferences.getString("appVersion","");
|
| 223 | 225 |
mSortMode = preferences.getInt("sortMode", MainSettingsPopup.SORT_DEFAULT);
|
| 226 |
mSaveMode = preferences.getInt("saveMode", MainSettingsPopup.SAVE_DEFAULT);
|
|
| 224 | 227 |
|
| 225 | 228 |
RubikObjectList.restorePreferences(this,preferences,justStarted); |
| 226 | 229 |
RubikScores scores = RubikScores.getInstance(this); |
| ... | ... | |
| 383 | 386 |
public void onSettings(View v) |
| 384 | 387 |
{
|
| 385 | 388 |
int sw = (int)(345*mDensity + 0.5f); |
| 386 |
int sh = (int)(188*mDensity + 0.5f);
|
|
| 389 |
int sh = (int)(255*mDensity + 0.5f);
|
|
| 387 | 390 |
|
| 388 | 391 |
int vw = v.getWidth(); |
| 389 | 392 |
|
| 390 |
MainSettingsPopup popup = new MainSettingsPopup(this,mSortMode,mCurrentTheme,sw,sh); |
|
| 393 |
MainSettingsPopup popup = new MainSettingsPopup(this,mSortMode,mCurrentTheme,mSaveMode,sw,sh);
|
|
| 391 | 394 |
popup.displayPopup(this,v,((vw-sw)/2),0); |
| 392 | 395 |
} |
| 393 | 396 |
|
| 397 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 398 |
|
|
| 399 |
public void changeSaveTo(int saveMode) |
|
| 400 |
{
|
|
| 401 |
mSaveMode = saveMode; |
|
| 402 |
|
|
| 403 |
// TODO |
|
| 404 |
} |
|
| 405 |
|
|
| 394 | 406 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 395 | 407 |
|
| 396 | 408 |
public void onUpdates(View v) |
| src/main/java/org/distorted/main/MainSettingsPopup.java | ||
|---|---|---|
| 36 | 36 |
public static final int SORT_YEAR = 4; |
| 37 | 37 |
|
| 38 | 38 |
public static final int SORT_DEFAULT = SORT_SHAPE; |
| 39 |
public static final int SAVE_DEFAULT = 2; // ask |
|
| 39 | 40 |
|
| 40 | 41 |
private static final int[] mLocation = new int[2]; |
| 41 | 42 |
|
| ... | ... | |
| 46 | 47 |
private String[] mSortNames; |
| 47 | 48 |
private int mCurrTheme; |
| 48 | 49 |
private String[] mThemeNames; |
| 50 |
private int mCurrSave; |
|
| 51 |
private String[] mSaveNames; |
|
| 49 | 52 |
|
| 50 | 53 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 51 | 54 |
// this is supposed to prevent showing the navigational bar when we show the drop down list, |
| ... | ... | |
| 83 | 86 |
|
| 84 | 87 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 85 | 88 |
|
| 86 |
MainSettingsPopup(MainActivity act, int sortMethod, int themeValue, int popupWidth, int popupHeight) |
|
| 89 |
MainSettingsPopup(MainActivity act, int sortMethod, int themeValue, int saveValue, int popupWidth, int popupHeight)
|
|
| 87 | 90 |
{
|
| 88 | 91 |
mAct = new WeakReference<>(act); |
| 89 | 92 |
|
| ... | ... | |
| 110 | 113 |
title.setBackground(new ColorDrawable(d)); |
| 111 | 114 |
mPopup.setElevation(100); |
| 112 | 115 |
|
| 116 |
/////// SORT //////////////////////////////////////////////////// |
|
| 113 | 117 |
Spinner sortSpinner = layout.findViewById(R.id.sortMethod); |
| 114 | 118 |
sortSpinner.setOnItemSelectedListener(this); |
| 115 | 119 |
|
| ... | ... | |
| 122 | 126 |
|
| 123 | 127 |
if( sortMethod>=0 && sortMethod<mSortNames.length ) sortSpinner.setSelection(sortMethod); |
| 124 | 128 |
|
| 129 |
/////// THEME /////////////////////////////////////////////////// |
|
| 125 | 130 |
Spinner themeSpinner = layout.findViewById(R.id.themeValue); |
| 126 | 131 |
themeSpinner.setOnItemSelectedListener(this); |
| 127 | 132 |
|
| ... | ... | |
| 133 | 138 |
themeSpinner.setAdapter(themeAdapter); |
| 134 | 139 |
|
| 135 | 140 |
if( themeValue>=0 && themeValue<mThemeNames.length ) themeSpinner.setSelection(themeValue); |
| 141 |
|
|
| 142 |
/////// SAVE //////////////////////////////////////////////////// |
|
| 143 |
Spinner saveSpinner = layout.findViewById(R.id.saveValue); |
|
| 144 |
saveSpinner.setOnItemSelectedListener(this); |
|
| 145 |
|
|
| 146 |
mCurrSave = saveValue; |
|
| 147 |
buildSaveOptions(act); |
|
| 148 |
|
|
| 149 |
ArrayAdapter<String> saveAdapter = new ArrayAdapter<>(act, R.layout.settings_spinner_item, mSaveNames); |
|
| 150 |
saveAdapter.setDropDownViewResource(R.layout.settings_spinner_item); |
|
| 151 |
saveSpinner.setAdapter(saveAdapter); |
|
| 152 |
|
|
| 153 |
if( saveValue>=0 && saveValue<mSaveNames.length ) saveSpinner.setSelection(saveValue); |
|
| 136 | 154 |
} |
| 137 | 155 |
|
| 138 | 156 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| ... | ... | |
| 163 | 181 |
mThemeNames[4] = res.getString(R.string.theme_orange); |
| 164 | 182 |
} |
| 165 | 183 |
|
| 184 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 185 |
|
|
| 186 |
private void buildSaveOptions(MainActivity act) |
|
| 187 |
{
|
|
| 188 |
Resources res = act.getResources(); |
|
| 189 |
mSaveNames = new String[3]; |
|
| 190 |
|
|
| 191 |
mSaveNames[0] = res.getString(R.string.save_always); |
|
| 192 |
mSaveNames[1] = res.getString(R.string.save_never); |
|
| 193 |
mSaveNames[2] = res.getString(R.string.save_ask); |
|
| 194 |
} |
|
| 195 |
|
|
| 166 | 196 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 167 | 197 |
// work around lame bugs in Android's version <= 10 pop-up and split-screen modes |
| 168 | 198 |
|
| ... | ... | |
| 231 | 261 |
mAct = null; |
| 232 | 262 |
act.changeThemeTo(pos); |
| 233 | 263 |
} |
| 264 |
if( parent.getId()==R.id.saveValue && mCurrSave!=pos ) |
|
| 265 |
{
|
|
| 266 |
mPopup.dismiss(); |
|
| 267 |
mCurrSave = pos; |
|
| 268 |
MainActivity act = mAct.get(); |
|
| 269 |
act.changeSaveTo(pos); |
|
| 270 |
} |
|
| 234 | 271 |
} |
| 235 | 272 |
|
| 236 | 273 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| src/main/res/layout/settings_popup.xml | ||
|---|---|---|
| 17 | 17 |
<GridLayout |
| 18 | 18 |
android:layout_width="match_parent" |
| 19 | 19 |
android:layout_height="wrap_content" |
| 20 |
android:rowCount="2"
|
|
| 20 |
android:rowCount="3"
|
|
| 21 | 21 |
android:columnCount="2"> |
| 22 | 22 |
|
| 23 | 23 |
<TextView |
| ... | ... | |
| 64 | 64 |
android:layout_marginBottom="10dp" |
| 65 | 65 |
android:popupBackground="?darkC"/> |
| 66 | 66 |
|
| 67 |
<TextView |
|
| 68 |
android:id="@+id/saveText" |
|
| 69 |
android:layout_marginStart="10dp" |
|
| 70 |
android:layout_marginEnd="15dp" |
|
| 71 |
android:layout_marginTop="10dp" |
|
| 72 |
android:layout_marginBottom="10dp" |
|
| 73 |
android:layout_width="wrap_content" |
|
| 74 |
android:layout_height="match_parent" |
|
| 75 |
android:text="@string/saves" |
|
| 76 |
android:textSize="24sp" |
|
| 77 |
android:gravity="start|center_vertical"/> |
|
| 78 |
|
|
| 79 |
<Spinner |
|
| 80 |
android:id="@+id/saveValue" |
|
| 81 |
android:layout_width="wrap_content" |
|
| 82 |
android:layout_height="match_parent" |
|
| 83 |
android:layout_marginStart="15dp" |
|
| 84 |
android:layout_marginEnd="10dp" |
|
| 85 |
android:layout_marginTop="10dp" |
|
| 86 |
android:layout_marginBottom="10dp" |
|
| 87 |
android:popupBackground="?darkC"/> |
|
| 88 |
|
|
| 67 | 89 |
</GridLayout> |
| 68 | 90 |
</LinearLayout> |
| src/main/res/layout/settings_popup_android25.xml | ||
|---|---|---|
| 66 | 66 |
android:spinnerMode="dialog" |
| 67 | 67 |
android:gravity="start|center_vertical"/> |
| 68 | 68 |
|
| 69 |
<TextView |
|
| 70 |
android:id="@+id/saveText" |
|
| 71 |
android:layout_marginStart="10dp" |
|
| 72 |
android:layout_marginEnd="15dp" |
|
| 73 |
android:layout_marginTop="10dp" |
|
| 74 |
android:layout_marginBottom="10dp" |
|
| 75 |
android:layout_width="wrap_content" |
|
| 76 |
android:layout_height="match_parent" |
|
| 77 |
android:text="@string/saves" |
|
| 78 |
android:textSize="24sp" |
|
| 79 |
android:gravity="start|center_vertical"/> |
|
| 80 |
|
|
| 81 |
<Spinner |
|
| 82 |
android:id="@+id/saveValue" |
|
| 83 |
android:layout_width="wrap_content" |
|
| 84 |
android:layout_height="match_parent" |
|
| 85 |
android:layout_marginStart="15dp" |
|
| 86 |
android:layout_marginEnd="10dp" |
|
| 87 |
android:layout_marginTop="10dp" |
|
| 88 |
android:layout_marginBottom="10dp" |
|
| 89 |
android:spinnerMode="dialog" |
|
| 90 |
android:gravity="start|center_vertical"/> |
|
| 91 |
|
|
| 69 | 92 |
</GridLayout> |
| 70 | 93 |
</LinearLayout> |
| src/main/res/values-de/strings.xml | ||
|---|---|---|
| 60 | 60 |
<string name="interrupt">Unterbrechen</string> |
| 61 | 61 |
<string name="sort_by">Ordnung</string> |
| 62 | 62 |
<string name="settings_title">Einstellungen</string> |
| 63 |
<string name="saves">Speichern</string> |
|
| 64 |
<string name="save_ask">Nachfragen</string> |
|
| 65 |
<string name="save_always">Immer</string> |
|
| 66 |
<string name="save_never">Nie</string> |
|
| 63 | 67 |
|
| 64 | 68 |
<string name="object_solver">Löser</string> |
| 65 | 69 |
<string name="object_pattern">Muster</string> |
| src/main/res/values-es/strings.xml | ||
|---|---|---|
| 60 | 60 |
<string name="interrupt">Interrumpirlo</string> |
| 61 | 61 |
<string name="sort_by">Ordenar</string> |
| 62 | 62 |
<string name="settings_title">Ajustes</string> |
| 63 |
<string name="saves">Guardar</string> |
|
| 64 |
<string name="save_ask">Preguntar</string> |
|
| 65 |
<string name="save_always">Siempre</string> |
|
| 66 |
<string name="save_never">Nunca</string> |
|
| 63 | 67 |
|
| 64 | 68 |
<string name="object_solver">Solucionador</string> |
| 65 | 69 |
<string name="object_pattern">Patrones</string> |
| src/main/res/values-fr/strings.xml | ||
|---|---|---|
| 59 | 59 |
<string name="interrupt">Interrompre</string> |
| 60 | 60 |
<string name="sort_by">Trier par</string> |
| 61 | 61 |
<string name="settings_title">Paramètres</string> |
| 62 |
<string name="saves">Enreg.</string> |
|
| 63 |
<string name="save_ask">Demander</string> |
|
| 64 |
<string name="save_always">Toujours</string> |
|
| 65 |
<string name="save_never">Jamais</string> |
|
| 62 | 66 |
|
| 63 | 67 |
<string name="object_solver">Solveur</string> |
| 64 | 68 |
<string name="object_pattern">Motifs</string> |
| src/main/res/values-ja/strings.xml | ||
|---|---|---|
| 60 | 60 |
<string name="interrupt">割り込み</string> |
| 61 | 61 |
<string name="sort_by">並べ替え</string> |
| 62 | 62 |
<string name="settings_title">設定</string> |
| 63 |
<string name="saves">保存</string> |
|
| 64 |
<string name="save_ask">確認する</string> |
|
| 65 |
<string name="save_always">常に</string> |
|
| 66 |
<string name="save_never">しない</string> |
|
| 63 | 67 |
|
| 64 | 68 |
<string name="object_solver">ソルバー</string> |
| 65 | 69 |
<string name="object_pattern">パターン</string> |
| src/main/res/values-ko/strings.xml | ||
|---|---|---|
| 60 | 60 |
<string name="interrupt">방해하다</string> |
| 61 | 61 |
<string name="sort_by">정렬 기준</string> |
| 62 | 62 |
<string name="settings_title">설정</string> |
| 63 |
<string name="saves">저장</string> |
|
| 64 |
<string name="save_ask">매번 묻기</string> |
|
| 65 |
<string name="save_always">항상</string> |
|
| 66 |
<string name="save_never">절대 안 함</string> |
|
| 63 | 67 |
|
| 64 | 68 |
<string name="object_solver">솔버</string> |
| 65 | 69 |
<string name="object_pattern">패턴</string> |
| src/main/res/values-pl/strings.xml | ||
|---|---|---|
| 60 | 60 |
<string name="interrupt">Przerwij</string> |
| 61 | 61 |
<string name="sort_by">Sortuj po</string> |
| 62 | 62 |
<string name="settings_title">Ustawienia</string> |
| 63 |
<string name="saves">Zapisz</string> |
|
| 64 |
<string name="save_ask">Pytaj</string> |
|
| 65 |
<string name="save_always">Zawsze</string> |
|
| 66 |
<string name="save_never">Nigdy</string> |
|
| 63 | 67 |
|
| 64 | 68 |
<string name="object_solver">Rozwiązywacz</string> |
| 65 | 69 |
<string name="object_pattern">Wzory</string> |
| src/main/res/values-ru/strings.xml | ||
|---|---|---|
| 60 | 60 |
<string name="interrupt">Прерви</string> |
| 61 | 61 |
<string name="sort_by">Группа по</string> |
| 62 | 62 |
<string name="settings_title">Настройки</string> |
| 63 |
<string name="saves">Сохранить</string> |
|
| 64 |
<string name="save_ask">Спрашивать</string> |
|
| 65 |
<string name="save_always">Всегда</string> |
|
| 66 |
<string name="save_never">Никогда</string> |
|
| 63 | 67 |
|
| 64 | 68 |
<string name="object_solver">Решатель</string> |
| 65 | 69 |
<string name="object_pattern">Узоры</string> |
| src/main/res/values-zh-rCN/strings.xml | ||
|---|---|---|
| 59 | 59 |
<string name="interrupt">打断</string> |
| 60 | 60 |
<string name="sort_by">排序方式</string> |
| 61 | 61 |
<string name="settings_title">设置</string> |
| 62 |
<string name="saves">保存</string> |
|
| 63 |
<string name="save_ask">询问</string> |
|
| 64 |
<string name="save_always">始终</string> |
|
| 65 |
<string name="save_never">从不</string> |
|
| 62 | 66 |
|
| 63 | 67 |
<string name="object_solver">求解器</string> |
| 64 | 68 |
<string name="object_pattern">图案</string> |
| src/main/res/values-zh-rTW/strings.xml | ||
|---|---|---|
| 59 | 59 |
<string name="interrupt">打斷</string> |
| 60 | 60 |
<string name="sort_by">排序方式</string> |
| 61 | 61 |
<string name="settings_title">設定</string> |
| 62 |
<string name="saves">儲存</string> |
|
| 63 |
<string name="save_ask">詢問</string> |
|
| 64 |
<string name="save_always">總是</string> |
|
| 65 |
<string name="save_never">從不</string> |
|
| 62 | 66 |
|
| 63 | 67 |
<string name="object_solver">求解器</string> |
| 64 | 68 |
<string name="object_pattern">圖案</string> |
| src/main/res/values/strings.xml | ||
|---|---|---|
| 64 | 64 |
<string name="resume">Resume</string> |
| 65 | 65 |
<string name="old_solve">Old Solve</string> |
| 66 | 66 |
<string name="new_solve">New Solve</string> |
| 67 |
<string name="saves">Save</string> |
|
| 68 |
<string name="save_ask">Ask</string> |
|
| 69 |
<string name="save_always">Always</string> |
|
| 70 |
<string name="save_never">Never</string> |
|
| 67 | 71 |
|
| 68 | 72 |
<string name="stars">Stars</string> |
| 69 | 73 |
<string name="scores">High Scores</string> |
Also available in: Unified diff
Make it possible to control when to save solves:
- always
- never
- aks each time