Revision 236cc1c1
Added by Leszek Koltunski 7 months ago
src/main/java/org/distorted/helpers/BaseActivity.java | ||
---|---|---|
44 | 44 |
protected int mCurrentTheme; |
45 | 45 |
protected int mScreenWidth, mScreenHeight; |
46 | 46 |
protected int mHeightLowerBar, mHeightUpperBar; |
47 |
protected float mDensity; |
|
47 | 48 |
protected SharedPreferences mPreferences; |
48 | 49 |
|
49 | 50 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
54 | 55 |
mPreferences = PreferenceManager.getDefaultSharedPreferences(this); |
55 | 56 |
mCurrentTheme = mPreferences.getInt("theme",THEME_GREY); |
56 | 57 |
|
58 |
mDensity = getResources().getDisplayMetrics().density; |
|
59 |
|
|
57 | 60 |
switch(mCurrentTheme) |
58 | 61 |
{ |
59 | 62 |
case THEME_WHITE : setTheme(R.style.WhiteTheme); break; |
... | ... | |
61 | 64 |
default : setTheme(R.style.GreyTheme); break; |
62 | 65 |
} |
63 | 66 |
|
64 |
android.util.Log.e("D", "current theme: "+mCurrentTheme); |
|
65 |
|
|
66 | 67 |
super.onCreate(savedState); |
67 | 68 |
} |
68 | 69 |
|
src/main/java/org/distorted/main/MainActivity.java | ||
---|---|---|
14 | 14 |
import android.content.pm.PackageInfo; |
15 | 15 |
import android.content.pm.PackageManager; |
16 | 16 |
import android.content.res.Configuration; |
17 |
import android.os.Build; |
|
18 | 17 |
import android.os.Bundle; |
19 | 18 |
import android.util.TypedValue; |
20 |
import android.view.DisplayCutout; |
|
21 | 19 |
import android.view.View; |
22 | 20 |
import android.view.ViewGroup; |
23 | 21 |
import android.widget.LinearLayout; |
... | ... | |
79 | 77 |
computeHeights(); |
80 | 78 |
|
81 | 79 |
getWindowWidth(getResources().getConfiguration()); |
82 |
android.util.Log.e("D", "onCreate: "+mScreenWidth+" "+mScreenHeight); |
|
83 | 80 |
|
84 | 81 |
mCurrVersion = getAppVers(); |
85 | 82 |
|
... | ... | |
120 | 117 |
layoutBot.setLayoutParams(pL); |
121 | 118 |
} |
122 | 119 |
|
123 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
124 |
/* |
|
125 |
@Override |
|
126 |
public void onAttachedToWindow() |
|
127 |
{ |
|
128 |
super.onAttachedToWindow(); |
|
129 |
|
|
130 |
getWindowWidth(getResources().getConfiguration()); |
|
131 |
|
|
132 |
|
|
133 |
android.util.Log.e("D", "onAttachedToWindow: "+mScreenWidth+" "+mScreenHeight); |
|
134 |
|
|
135 |
|
|
136 |
mGrid = new MainScrollGrid(); |
|
137 |
mGrid.createGrid(this,mScreenWidth,mSortMode); |
|
138 |
|
|
139 |
if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.P ) |
|
140 |
{ |
|
141 |
DisplayCutout cutout = getWindow().getDecorView().getRootWindowInsets().getDisplayCutout(); |
|
142 |
int insetHeight = cutout!=null ? cutout.getSafeInsetTop() : 0; |
|
143 |
|
|
144 |
if( insetHeight>0 ) |
|
145 |
{ |
|
146 |
LinearLayout.LayoutParams pH = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0, RATIO_HID); |
|
147 |
LinearLayout layoutHid = findViewById(R.id.hiddenBar); |
|
148 |
layoutHid.setLayoutParams(pH); |
|
149 |
|
|
150 |
LinearLayout.LayoutParams pS = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0, 1-2*RATIO_BAR-RATIO_HID); |
|
151 |
ScrollView scroll = findViewById(R.id.objectScroll); |
|
152 |
scroll.setLayoutParams(pS); |
|
153 |
} |
|
154 |
} |
|
155 |
} |
|
156 |
*/ |
|
157 | 120 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
158 | 121 |
|
159 | 122 |
@Override |
160 | 123 |
public void onConfigurationChanged(@NonNull Configuration conf) |
161 | 124 |
{ |
162 | 125 |
super.onConfigurationChanged(conf); |
163 |
|
|
164 |
android.util.Log.e("D", "onConfigurationChanged"); |
|
165 |
|
|
166 | 126 |
getWindowWidth(conf); |
167 | 127 |
if( mGrid!=null ) mGrid.updateGrid(this,mScreenWidth); |
168 | 128 |
} |
... | ... | |
175 | 135 |
super.onPause(); |
176 | 136 |
RubikNetwork.onPause(); |
177 | 137 |
savePreferences(); |
178 |
|
|
179 |
|
|
180 |
android.util.Log.e("D", "onPause"); |
|
181 |
|
|
182 | 138 |
} |
183 | 139 |
|
184 | 140 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
188 | 144 |
{ |
189 | 145 |
super.onResume(); |
190 | 146 |
|
191 |
android.util.Log.e("D", "onResume"); |
|
192 |
|
|
193 | 147 |
restorePreferences(mJustStarted); |
194 | 148 |
|
195 | 149 |
RubikNetwork network = RubikNetwork.getInstance(); |
... | ... | |
225 | 179 |
protected void onDestroy() |
226 | 180 |
{ |
227 | 181 |
super.onDestroy(); |
228 |
|
|
229 |
android.util.Log.e("D", "onDestroy"); |
|
230 | 182 |
} |
231 | 183 |
|
232 | 184 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
412 | 364 |
|
413 | 365 |
public void onSettings(View v) |
414 | 366 |
{ |
415 |
int sw = (int)(mScreenWidth*0.70);
|
|
416 |
int sh = (int)(mScreenHeight*0.25f);
|
|
367 |
int sw = (int)(340*mDensity + 0.5f);
|
|
368 |
int sh = (int)(188*mDensity + 0.5f);
|
|
417 | 369 |
|
418 | 370 |
int vw = v.getWidth(); |
419 | 371 |
|
src/main/java/org/distorted/main/MainSettingsPopup.java | ||
---|---|---|
122 | 122 |
buildSortOptions(act); |
123 | 123 |
|
124 | 124 |
ArrayAdapter<String> sortAdapter = new ArrayAdapter<>(act, R.layout.settings_spinner_item, mSortNames); |
125 |
sortAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
125 |
sortAdapter.setDropDownViewResource(R.layout.settings_spinner_item);
|
|
126 | 126 |
sortSpinner.setAdapter(sortAdapter); |
127 | 127 |
|
128 | 128 |
if( sortMethod>=0 && sortMethod<mSortNames.length ) sortSpinner.setSelection(sortMethod); |
... | ... | |
134 | 134 |
buildThemeOptions(act); |
135 | 135 |
|
136 | 136 |
ArrayAdapter<String> themeAdapter = new ArrayAdapter<>(act, R.layout.settings_spinner_item, mThemeNames); |
137 |
themeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
|
137 |
themeAdapter.setDropDownViewResource(R.layout.settings_spinner_item);
|
|
138 | 138 |
themeSpinner.setAdapter(themeAdapter); |
139 | 139 |
|
140 | 140 |
if( themeValue>=0 && themeValue<mThemeNames.length ) themeSpinner.setSelection(themeValue); |
src/main/res/layout/settings_popup.xml | ||
---|---|---|
23 | 23 |
|
24 | 24 |
<TextView |
25 | 25 |
android:id="@+id/sortText" |
26 |
android:layout_marginStart="5dp" |
|
27 |
android:layout_marginEnd="25dp" |
|
26 |
android:layout_marginStart="10dp" |
|
27 |
android:layout_marginEnd="15dp" |
|
28 |
android:layout_marginTop="10dp" |
|
29 |
android:layout_marginBottom="10dp" |
|
28 | 30 |
android:layout_width="wrap_content" |
29 | 31 |
android:layout_height="match_parent" |
30 | 32 |
android:text="@string/sort_by" |
... | ... | |
35 | 37 |
android:id="@+id/sortMethod" |
36 | 38 |
android:layout_width="wrap_content" |
37 | 39 |
android:layout_height="match_parent" |
38 |
android:layout_margin="10dip" |
|
39 |
android:gravity="center|center_vertical"/> |
|
40 |
android:layout_marginStart="15dp" |
|
41 |
android:layout_marginEnd="10dp" |
|
42 |
android:layout_marginTop="10dp" |
|
43 |
android:layout_marginBottom="10dp" |
|
44 |
android:gravity="start|center_vertical"/> |
|
40 | 45 |
|
41 | 46 |
<TextView |
42 | 47 |
android:id="@+id/themeText" |
43 |
android:layout_marginStart="5dp" |
|
44 |
android:layout_marginEnd="25dp" |
|
48 |
android:layout_marginStart="10dp" |
|
49 |
android:layout_marginEnd="15dp" |
|
50 |
android:layout_marginTop="10dp" |
|
51 |
android:layout_marginBottom="10dp" |
|
45 | 52 |
android:layout_width="wrap_content" |
46 | 53 |
android:layout_height="match_parent" |
47 | 54 |
android:text="@string/theme" |
... | ... | |
52 | 59 |
android:id="@+id/themeValue" |
53 | 60 |
android:layout_width="wrap_content" |
54 | 61 |
android:layout_height="match_parent" |
55 |
android:layout_margin="10dip" |
|
56 |
android:gravity="center|center_vertical"/> |
|
62 |
android:layout_marginStart="15dp" |
|
63 |
android:layout_marginEnd="10dp" |
|
64 |
android:layout_marginTop="10dp" |
|
65 |
android:layout_marginBottom="10dp" |
|
66 |
android:gravity="start|center_vertical"/> |
|
57 | 67 |
|
58 | 68 |
</GridLayout> |
59 | 69 |
</LinearLayout> |
src/main/res/layout/settings_popup_android25.xml | ||
---|---|---|
11 | 11 |
android:layout_width="match_parent" |
12 | 12 |
android:layout_height="wrap_content" |
13 | 13 |
android:text="@string/settings_title" |
14 |
android:textSize="34sp" |
|
14 | 15 |
android:background="@color/light_grey" |
15 | 16 |
android:gravity="center"/> |
16 | 17 |
|
17 |
<LinearLayout
|
|
18 |
android:layout_width="wrap_content"
|
|
19 |
android:layout_height="match_parent"
|
|
20 |
android:gravity="center"
|
|
21 |
android:orientation="horizontal">
|
|
18 |
<GridLayout
|
|
19 |
android:layout_width="match_parent"
|
|
20 |
android:layout_height="wrap_content"
|
|
21 |
android:rowCount="2"
|
|
22 |
android:columnCount="2">
|
|
22 | 23 |
|
23 |
<TextView |
|
24 |
<TextView
|
|
24 | 25 |
android:id="@+id/sortText" |
25 |
android:layout_marginStart="5dp" |
|
26 |
android:layout_marginEnd="25dp" |
|
26 |
android:layout_marginStart="10dp" |
|
27 |
android:layout_marginEnd="15dp" |
|
28 |
android:layout_marginTop="10dp" |
|
29 |
android:layout_marginBottom="10dp" |
|
27 | 30 |
android:layout_width="wrap_content" |
28 | 31 |
android:layout_height="match_parent" |
29 | 32 |
android:text="@string/sort_by" |
33 |
android:textSize="24sp" |
|
30 | 34 |
android:gravity="start|center_vertical"/> |
31 | 35 |
|
32 | 36 |
<Spinner |
33 | 37 |
android:id="@+id/sortMethod" |
34 | 38 |
android:layout_width="wrap_content" |
35 | 39 |
android:layout_height="match_parent" |
40 |
android:layout_marginStart="15dp" |
|
41 |
android:layout_marginEnd="10dp" |
|
42 |
android:layout_marginTop="10dp" |
|
43 |
android:layout_marginBottom="10dp" |
|
36 | 44 |
android:spinnerMode="dialog" |
37 |
android:gravity="end|center_vertical"/> |
|
38 |
|
|
39 |
</LinearLayout> |
|
40 |
|
|
41 |
<LinearLayout |
|
42 |
android:layout_width="wrap_content" |
|
43 |
android:layout_height="match_parent" |
|
44 |
android:gravity="center" |
|
45 |
android:orientation="horizontal"> |
|
45 |
android:gravity="start|center_vertical"/> |
|
46 | 46 |
|
47 |
<TextView |
|
47 |
<TextView
|
|
48 | 48 |
android:id="@+id/themeText" |
49 |
android:layout_marginStart="5dp" |
|
50 |
android:layout_marginEnd="25dp" |
|
49 |
android:layout_marginStart="10dp" |
|
50 |
android:layout_marginEnd="15dp" |
|
51 |
android:layout_marginTop="10dp" |
|
52 |
android:layout_marginBottom="10dp" |
|
51 | 53 |
android:layout_width="wrap_content" |
52 | 54 |
android:layout_height="match_parent" |
53 | 55 |
android:text="@string/theme" |
56 |
android:textSize="24sp" |
|
54 | 57 |
android:gravity="start|center_vertical"/> |
55 | 58 |
|
56 |
<Spinner |
|
59 |
<Spinner
|
|
57 | 60 |
android:id="@+id/themeValue" |
58 | 61 |
android:layout_width="wrap_content" |
59 | 62 |
android:layout_height="match_parent" |
60 |
android:gravity="end|center_vertical"/> |
|
63 |
android:layout_marginStart="15dp" |
|
64 |
android:layout_marginEnd="10dp" |
|
65 |
android:layout_marginTop="10dp" |
|
66 |
android:layout_marginBottom="10dp" |
|
67 |
android:spinnerMode="dialog" |
|
68 |
android:gravity="start|center_vertical"/> |
|
61 | 69 |
|
62 |
</LinearLayout>
|
|
70 |
</GridLayout>
|
|
63 | 71 |
</LinearLayout> |
src/main/res/layout/settings_spinner_item.xml | ||
---|---|---|
3 | 3 |
<TextView |
4 | 4 |
xmlns:android="http://schemas.android.com/apk/res/android" |
5 | 5 |
style="?android:attr/spinnerItemStyle" |
6 |
android:layout_width="80dp"
|
|
6 |
android:layout_width="160dp"
|
|
7 | 7 |
android:layout_height="wrap_content" |
8 |
android:paddingTop="8dp" |
|
9 |
android:paddingBottom="8dp" |
|
8 | 10 |
android:textSize="24sp" |
9 |
android:gravity="end"
|
|
11 |
android:gravity="start"
|
|
10 | 12 |
android:singleLine="true" |
11 | 13 |
android:textColor="#FFFFFF" |
12 | 14 |
/> |
src/main/res/values-de/strings.xml | ||
---|---|---|
90 | 90 |
<string name="config_corner">Ecken</string> |
91 | 91 |
<string name="config_no_support">Das aktuelle Puzzle unterstützt keine Farbanpassung.</string> |
92 | 92 |
|
93 |
<string name="sort_classic">klassisch</string>
|
|
94 |
<string name="sort_shape">form</string>
|
|
95 |
<string name="sort_difficulty">schwierigkeit</string>
|
|
96 |
<string name="sort_author">autor</string>
|
|
97 |
<string name="sort_year">jahr</string>
|
|
93 |
<string name="sort_classic">Klassisch</string>
|
|
94 |
<string name="sort_shape">Form</string>
|
|
95 |
<string name="sort_difficulty">Schwierigkeit</string>
|
|
96 |
<string name="sort_author">Autor</string>
|
|
97 |
<string name="sort_year">Jahr</string>
|
|
98 | 98 |
|
99 | 99 |
<string name="credits1">Open Source App, die mit der Distorted Graphics Library entwickelt wurde. Lizenziert unter <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">GPL Version 2</a> oder wie gewünscht einer späteren Version.</string> |
100 | 100 |
<string name="credits2">Hübsche Muster von Walter Randelshofer. Sehen Sie <a href="http://www.randelshofer.ch">http://www.randelshofer.ch</a></string> |
src/main/res/values-es/strings.xml | ||
---|---|---|
90 | 90 |
<string name="config_corner">Esquinas</string> |
91 | 91 |
<string name="config_no_support">El cubo actual no admite el ajuste de colores.</string> |
92 | 92 |
|
93 |
<string name="sort_classic">clásico</string>
|
|
94 |
<string name="sort_shape">forma</string>
|
|
95 |
<string name="sort_difficulty">dificultad</string>
|
|
96 |
<string name="sort_author">autor</string>
|
|
97 |
<string name="sort_year">año</string>
|
|
93 |
<string name="sort_classic">Clásico</string>
|
|
94 |
<string name="sort_shape">Forma</string>
|
|
95 |
<string name="sort_difficulty">Dificultad</string>
|
|
96 |
<string name="sort_author">Autor</string>
|
|
97 |
<string name="sort_year">Año</string>
|
|
98 | 98 |
|
99 | 99 |
<string name="credits1">Aplicación de código abierto desarrollada con la biblioteca de gráficos de Distorted. Con licencia <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">GPL versión 2</a> o, a tu elección, cualquier versión posterior.</string> |
100 | 100 |
<string name="credits2">Pretty Patterns por Walter Randelshofer. Mira <a href="http://www.randelshofer.ch">http://www.randelshofer.ch</a></string> |
src/main/res/values-fr/strings.xml | ||
---|---|---|
90 | 90 |
<string name="config_corner">Coins</string> |
91 | 91 |
<string name="config_no_support">Le cube actuel ne prend pas en charge le réglage des couleurs.</string> |
92 | 92 |
|
93 |
<string name="sort_classic">classique</string>
|
|
94 |
<string name="sort_shape">forme</string>
|
|
95 |
<string name="sort_difficulty">difficulté</string>
|
|
96 |
<string name="sort_author">auteur</string>
|
|
97 |
<string name="sort_year">année</string>
|
|
93 |
<string name="sort_classic">Classique</string>
|
|
94 |
<string name="sort_shape">Forme</string>
|
|
95 |
<string name="sort_difficulty">Difficulté</string>
|
|
96 |
<string name="sort_author">Auteur</string>
|
|
97 |
<string name="sort_year">Année</string>
|
|
98 | 98 |
|
99 | 99 |
<string name="credits1">Appli Open Source développée à l\'aide de la bibliothèque graphique Distorted. Sous licence <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">GPL version 2</a> ou - à votre choix - toute version ultérieure.</string> |
100 | 100 |
<string name="credits2">Pretty Patterns par Walter Randelshofer. Voir <a href="http://www.randelshofer.ch">http://www.randelshofer.ch</a></string> |
src/main/res/values-pl/strings.xml | ||
---|---|---|
90 | 90 |
<string name="config_corner">Rogi</string> |
91 | 91 |
<string name="config_no_support">Bieżąca kostka nie wspomaga zmieniania kolorów.</string> |
92 | 92 |
|
93 |
<string name="sort_classic">klasycznie</string>
|
|
94 |
<string name="sort_shape">kształt</string>
|
|
95 |
<string name="sort_difficulty">trudność</string>
|
|
96 |
<string name="sort_author">autor</string>
|
|
97 |
<string name="sort_year">rok</string>
|
|
93 |
<string name="sort_classic">Klasycznie</string>
|
|
94 |
<string name="sort_shape">Kształt</string>
|
|
95 |
<string name="sort_difficulty">Trudność</string>
|
|
96 |
<string name="sort_author">Autor</string>
|
|
97 |
<string name="sort_year">Rok</string>
|
|
98 | 98 |
|
99 | 99 |
<string name="credits1">Aplikacja open-source napisana wykorzystując bibliotekę Distorted. Licencja: <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">GPL wersja 2</a> albo jakakolwiek poźniejsza.</string> |
100 | 100 |
<string name="credits2">Piękne Wzory Waltera Randelshofera. Zobacz <a href="http://www.randelshofer.ch">http://www.randelshofer.ch</a></string> |
src/main/res/values-ru/strings.xml | ||
---|---|---|
90 | 90 |
<string name="config_corner">Углы</string> |
91 | 91 |
<string name="config_no_support">Текущий куб не поддерживает настройку цветов.</string> |
92 | 92 |
|
93 |
<string name="sort_classic">классик</string>
|
|
94 |
<string name="sort_shape">форма</string>
|
|
95 |
<string name="sort_difficulty">сложность</string>
|
|
96 |
<string name="sort_author">автор</string>
|
|
97 |
<string name="sort_year">год</string>
|
|
93 |
<string name="sort_classic">Классик</string>
|
|
94 |
<string name="sort_shape">Форма</string>
|
|
95 |
<string name="sort_difficulty">Сложность</string>
|
|
96 |
<string name="sort_author">Автор</string>
|
|
97 |
<string name="sort_year">Год</string>
|
|
98 | 98 |
|
99 | 99 |
<string name="credits1">Приложение с открытым исходным кодом, разработанное с использованием библиотеки графики Искажений. Лицензируется согласно <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">версии 2 GPL</a> или любой более поздней версии по вашему выбору.</string> |
100 | 100 |
<string name="credits2">Pretty Patterns по Walter Randelshofer. Смотри <a href="http://www.randelshofer.ch">http://www.randelshofer.ch</a></string> |
src/main/res/values/strings.xml | ||
---|---|---|
124 | 124 |
<string name="sort_by">Sort by</string> |
125 | 125 |
<string name="settings_title">Settings</string> |
126 | 126 |
|
127 |
<string name="sort_classic">classic</string>
|
|
128 |
<string name="sort_shape">shape</string>
|
|
129 |
<string name="sort_difficulty">difficulty</string>
|
|
130 |
<string name="sort_author">author</string>
|
|
131 |
<string name="sort_year">year</string>
|
|
127 |
<string name="sort_classic">Classic</string>
|
|
128 |
<string name="sort_shape">Shape</string>
|
|
129 |
<string name="sort_difficulty">Difficulty</string>
|
|
130 |
<string name="sort_author">Author</string>
|
|
131 |
<string name="sort_year">Year</string>
|
|
132 | 132 |
|
133 | 133 |
<string name="webview_error" translatable="false">Error Loading WebView</string> |
134 | 134 |
<string name="opengl_error" translatable="false">Error</string> |
Also available in: Unified diff
major progress with the main settings popup