Revision 74d088c3
Added by Leszek Koltunski almost 3 years ago
src/main/java/org/distorted/config/ConfigActivity.java | ||
---|---|---|
140 | 140 |
super.onAttachedToWindow(); |
141 | 141 |
|
142 | 142 |
if( mScreen==null ) mScreen = new ConfigScreen(); |
143 |
mScreen.enterScreen(this,mObjectOrdinal);
|
|
143 |
mScreen.onAttachedToWindow(this,mObjectOrdinal);
|
|
144 | 144 |
} |
145 | 145 |
|
146 | 146 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
src/main/java/org/distorted/config/ConfigScreen.java | ||
---|---|---|
52 | 52 |
private TransparentImageButton mBackButton, mObjectButton, mPrevButton, mNextButton; |
53 | 53 |
private TextView mMovesText; |
54 | 54 |
private PopupWindow mObjectPopup; |
55 |
private LinearLayout mDetailsLayout, mComplexLayout, mMeshLayout;
|
|
55 |
private ConfigScreenPane mPane;
|
|
56 | 56 |
private int mObjectOrdinal; |
57 | 57 |
private int mColCount, mRowCount, mMaxRowCount; |
58 | 58 |
private int mObjectSize; |
... | ... | |
117 | 117 |
mObjectOrdinal = ordinal; |
118 | 118 |
act.changeObject(type); |
119 | 119 |
mMovesText.setText(act.getString(R.string.mo_placeholder,mObjectOrdinal+1,NUM_OBJECTS)); |
120 |
setupInfo(act);
|
|
120 |
mPane.updatePane(act,mObjectOrdinal);
|
|
121 | 121 |
} |
122 | 122 |
|
123 | 123 |
mObjectPopup.dismiss(); |
... | ... | |
242 | 242 |
ObjectType type = ObjectType.getObject(mObjectOrdinal); |
243 | 243 |
act.changeObject(type); |
244 | 244 |
|
245 |
setupInfo(act);
|
|
245 |
mPane.updatePane(act,mObjectOrdinal);
|
|
246 | 246 |
} |
247 | 247 |
|
248 | 248 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
255 | 255 |
ObjectType type = ObjectType.getObject(mObjectOrdinal); |
256 | 256 |
act.changeObject(type); |
257 | 257 |
|
258 |
setupInfo(act);
|
|
258 |
mPane.updatePane(act,mObjectOrdinal);
|
|
259 | 259 |
} |
260 | 260 |
|
261 | 261 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
317 | 317 |
mMovesText.setText(act.getString(R.string.mo_placeholder,mObjectOrdinal+1,NUM_OBJECTS)); |
318 | 318 |
} |
319 | 319 |
|
320 |
|
|
321 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
322 |
|
|
323 |
private LinearLayout createLayout(ConfigActivity act, final int marginT, final int marginB, final int marginS, final int color) |
|
324 |
{ |
|
325 |
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,200);//LinearLayout.LayoutParams.WRAP_CONTENT); |
|
326 |
params.bottomMargin = marginB; |
|
327 |
params.topMargin = marginT; |
|
328 |
params.leftMargin = marginS; |
|
329 |
params.rightMargin = marginS; |
|
330 |
|
|
331 |
LinearLayout layout = new LinearLayout(act); |
|
332 |
layout.setLayoutParams(params); |
|
333 |
layout.setBackgroundColor(color); |
|
334 |
|
|
335 |
return layout; |
|
336 |
} |
|
337 |
|
|
338 | 320 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
339 | 321 |
|
340 |
private void setupDetailsLayout(ConfigActivity act, final float width) |
|
341 |
{ |
|
342 |
|
|
343 |
} |
|
344 |
|
|
345 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
346 |
|
|
347 |
private void setupComplexLayout(ConfigActivity act, final float width) |
|
348 |
{ |
|
349 |
|
|
350 |
|
|
351 |
} |
|
352 |
|
|
353 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
354 |
|
|
355 |
private void setupMeshLayout(ConfigActivity act, final float width) |
|
356 |
{ |
|
357 |
|
|
358 |
|
|
359 |
} |
|
360 |
|
|
361 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
362 |
|
|
363 |
private void setupInfo(ConfigActivity act) |
|
364 |
{ |
|
365 |
int width = act.getScreenWidthInPixels(); |
|
366 |
|
|
367 |
setupDetailsLayout(act,width); |
|
368 |
setupComplexLayout(act,width); |
|
369 |
setupMeshLayout(act,width); |
|
370 |
} |
|
371 |
|
|
372 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
373 |
|
|
374 |
void enterScreen(final ConfigActivity act, final int objectOrdinal) |
|
322 |
void onAttachedToWindow(final ConfigActivity act, final int objectOrdinal) |
|
375 | 323 |
{ |
376 | 324 |
int width = act.getScreenWidthInPixels(); |
377 | 325 |
mBarHeight = act.getHeightBar(); |
... | ... | |
382 | 330 |
|
383 | 331 |
mObjectOrdinal = objectOrdinal; |
384 | 332 |
|
385 |
LinearLayout.LayoutParams paramsL = new LinearLayout.LayoutParams((int)(width/4),LinearLayout.LayoutParams.MATCH_PARENT);
|
|
386 |
LinearLayout.LayoutParams paramsM = new LinearLayout.LayoutParams((int)(width/2),LinearLayout.LayoutParams.MATCH_PARENT);
|
|
387 |
LinearLayout.LayoutParams paramsR = new LinearLayout.LayoutParams((int)(width/4),LinearLayout.LayoutParams.MATCH_PARENT);
|
|
333 |
LinearLayout.LayoutParams paramsL = new LinearLayout.LayoutParams(width/4, LinearLayout.LayoutParams.MATCH_PARENT);
|
|
334 |
LinearLayout.LayoutParams paramsM = new LinearLayout.LayoutParams(width/2, LinearLayout.LayoutParams.MATCH_PARENT);
|
|
335 |
LinearLayout.LayoutParams paramsR = new LinearLayout.LayoutParams(width/4, LinearLayout.LayoutParams.MATCH_PARENT);
|
|
388 | 336 |
|
389 | 337 |
LinearLayout layoutLeft = new LinearLayout(act); |
390 | 338 |
layoutLeft.setLayoutParams(paramsL); |
... | ... | |
411 | 359 |
layout.addView(layoutMid); |
412 | 360 |
layout.addView(layoutRight); |
413 | 361 |
|
414 |
int color = act.getResources().getColor(R.color.light_grey); |
|
415 |
int margin = (int)(1.5f*width*RubikActivity.PADDING); |
|
416 |
|
|
417 |
mDetailsLayout = createLayout(act,2*margin, margin, 2*margin, color); |
|
418 |
mComplexLayout = createLayout(act, margin, margin, 2*margin, color); |
|
419 |
mMeshLayout = createLayout(act, margin,2*margin, 2*margin, color); |
|
420 |
|
|
421 |
LinearLayout configLayout = act.findViewById(R.id.configLayout); |
|
422 |
configLayout.removeAllViews(); |
|
423 |
configLayout.addView(mDetailsLayout); |
|
424 |
configLayout.addView(mComplexLayout); |
|
425 |
configLayout.addView(mMeshLayout); |
|
362 |
mPane = new ConfigScreenPane(act,mObjectOrdinal); |
|
426 | 363 |
} |
427 | 364 |
} |
src/main/java/org/distorted/config/ConfigScreenPane.java | ||
---|---|---|
1 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
2 |
// Copyright 2020 Leszek Koltunski // |
|
3 |
// // |
|
4 |
// This file is part of Magic Cube. // |
|
5 |
// // |
|
6 |
// Magic Cube is free software: you can redistribute it and/or modify // |
|
7 |
// it under the terms of the GNU General Public License as published by // |
|
8 |
// the Free Software Foundation, either version 2 of the License, or // |
|
9 |
// (at your option) any later version. // |
|
10 |
// // |
|
11 |
// Magic Cube is distributed in the hope that it will be useful, // |
|
12 |
// but WITHOUT ANY WARRANTY; without even the implied warranty of // |
|
13 |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // |
|
14 |
// GNU General Public License for more details. // |
|
15 |
// // |
|
16 |
// You should have received a copy of the GNU General Public License // |
|
17 |
// along with Magic Cube. If not, see <http://www.gnu.org/licenses/>. // |
|
18 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
19 |
|
|
20 |
package org.distorted.config; |
|
21 |
|
|
22 |
import android.widget.LinearLayout; |
|
23 |
import android.widget.TextView; |
|
24 |
|
|
25 |
import org.distorted.jsons.ObjectJson; |
|
26 |
import org.distorted.main.R; |
|
27 |
import org.distorted.objectlib.json.JsonReader; |
|
28 |
import org.distorted.objectlib.main.ObjectType; |
|
29 |
|
|
30 |
import java.io.InputStream; |
|
31 |
|
|
32 |
import static android.view.View.inflate; |
|
33 |
|
|
34 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
35 |
|
|
36 |
public class ConfigScreenPane |
|
37 |
{ |
|
38 |
private static final float TEXT_RATIO = 0.015f; |
|
39 |
|
|
40 |
private LinearLayout mDetailsLayout, mDifficultyLayout, mMeshLayout; |
|
41 |
private JsonReader mReader; |
|
42 |
|
|
43 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
44 |
|
|
45 |
void updatePane(ConfigActivity act, int objectOrdinal) |
|
46 |
{ |
|
47 |
if( mReader==null ) mReader = new JsonReader(); |
|
48 |
|
|
49 |
ObjectType type = ObjectType.getObject(objectOrdinal); |
|
50 |
InputStream stream = ObjectJson.getStream(type,act); |
|
51 |
mReader.parseJsonFileMetadata(stream); |
|
52 |
|
|
53 |
String name = mReader.getObjectName(); |
|
54 |
String author = mReader.getInventor(); |
|
55 |
int year = mReader.getYearOfInvention(); |
|
56 |
|
|
57 |
LinearLayout layout = act.findViewById(R.id.configLayout); |
|
58 |
TextView view = layout.findViewById(R.id.configDetailsName2); |
|
59 |
view.setText(name); |
|
60 |
view = layout.findViewById(R.id.configDetailsAuthor2); |
|
61 |
view.setText(author+" "+year); |
|
62 |
} |
|
63 |
|
|
64 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
65 |
|
|
66 |
ConfigScreenPane(final ConfigActivity act, int objectOrdinal) |
|
67 |
{ |
|
68 |
mDetailsLayout = (LinearLayout)inflate( act, R.layout.config_details , null); |
|
69 |
mDifficultyLayout = (LinearLayout)inflate( act, R.layout.config_difficulty, null); |
|
70 |
mMeshLayout = (LinearLayout)inflate( act, R.layout.config_mesh , null); |
|
71 |
|
|
72 |
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 0, 1.0f); |
|
73 |
mDetailsLayout.setLayoutParams(params); |
|
74 |
mDifficultyLayout.setLayoutParams(params); |
|
75 |
mMeshLayout.setLayoutParams(params); |
|
76 |
|
|
77 |
int height = act.getScreenHeightInPixels(); |
|
78 |
float textSize = height*TEXT_RATIO; |
|
79 |
TextView text; |
|
80 |
text = mDetailsLayout.findViewById(R.id.configDetailsTitle); |
|
81 |
text.setTextSize(textSize); |
|
82 |
text = mDetailsLayout.findViewById(R.id.configDetailsName1); |
|
83 |
text.setTextSize(textSize); |
|
84 |
text = mDetailsLayout.findViewById(R.id.configDetailsName2); |
|
85 |
text.setTextSize(textSize); |
|
86 |
text = mDetailsLayout.findViewById(R.id.configDetailsAuthor1); |
|
87 |
text.setTextSize(textSize); |
|
88 |
text = mDetailsLayout.findViewById(R.id.configDetailsAuthor2); |
|
89 |
text.setTextSize(textSize); |
|
90 |
|
|
91 |
text = mDifficultyLayout.findViewById(R.id.configDifficultyTitle); |
|
92 |
text.setTextSize(textSize); |
|
93 |
text = mMeshLayout.findViewById(R.id.configMeshTitle); |
|
94 |
text.setTextSize(textSize); |
|
95 |
|
|
96 |
LinearLayout layout = act.findViewById(R.id.configLayout); |
|
97 |
layout.removeAllViews(); |
|
98 |
layout.addView(mDetailsLayout); |
|
99 |
layout.addView(mDifficultyLayout); |
|
100 |
layout.addView(mMeshLayout); |
|
101 |
|
|
102 |
updatePane(act,objectOrdinal); |
|
103 |
} |
|
104 |
} |
src/main/res/layout/config.xml | ||
---|---|---|
9 | 9 |
android:id="@+id/configSurfaceView" |
10 | 10 |
android:layout_width="match_parent" |
11 | 11 |
android:layout_height="0dp" |
12 |
android:layout_weight="1"/> |
|
12 |
android:layout_weight="1.0"/>
|
|
13 | 13 |
|
14 | 14 |
<LinearLayout |
15 |
android:id="@+id/configLayout" |
|
15 | 16 |
android:layout_width="match_parent" |
16 | 17 |
android:layout_height="0dp" |
17 |
android:layout_weight="1" |
|
18 |
android:orientation="horizontal" |
|
19 |
android:background="@color/light_grey"> |
|
20 |
|
|
21 |
<ScrollView |
|
22 |
android:id="@+id/configScroll" |
|
23 |
android:layout_width="match_parent" |
|
24 |
android:layout_height="match_parent" |
|
25 |
android:layout_marginLeft="10dp" |
|
26 |
android:layout_marginRight="10dp" |
|
27 |
android:background="@color/grey"> |
|
28 |
|
|
29 |
<LinearLayout |
|
30 |
android:id="@+id/configLayout" |
|
31 |
android:layout_width="match_parent" |
|
32 |
android:layout_height="wrap_content" |
|
33 |
android:layout_marginLeft="0dp" |
|
34 |
android:layout_marginRight="0dp" |
|
35 |
android:background="@color/grey" |
|
36 |
android:orientation="vertical" > |
|
37 |
</LinearLayout> |
|
38 |
|
|
39 |
</ScrollView> |
|
40 |
|
|
18 |
android:layout_weight="1.0" |
|
19 |
android:layout_marginLeft="0dp" |
|
20 |
android:layout_marginRight="0dp" |
|
21 |
android:background="@color/light_grey" |
|
22 |
android:orientation="vertical" > |
|
41 | 23 |
</LinearLayout> |
42 | 24 |
|
43 | 25 |
<LinearLayout |
src/main/res/layout/config_details.xml | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
|
3 |
android:layout_width="fill_parent" |
|
4 |
android:layout_height="0dp" |
|
5 |
android:layout_weight="1" |
|
6 |
android:gravity="center|fill_horizontal" |
|
7 |
android:background="@color/grey" |
|
8 |
android:orientation="vertical"> |
|
9 |
|
|
10 |
<TextView |
|
11 |
android:id="@+id/configDetailsTitle" |
|
12 |
android:layout_width="match_parent" |
|
13 |
android:layout_height="0dp" |
|
14 |
android:layout_weight="1" |
|
15 |
android:gravity="center" |
|
16 |
android:textSize="26sp" |
|
17 |
android:layout_marginTop="10dp" |
|
18 |
android:layout_marginLeft="10dp" |
|
19 |
android:layout_marginRight="10dp" |
|
20 |
android:paddingLeft="2dp" |
|
21 |
android:paddingRight="2dp" |
|
22 |
android:maxLines="1" |
|
23 |
android:text="@string/config_details" |
|
24 |
android:background="@color/light_grey"/> |
|
25 |
|
|
26 |
<LinearLayout |
|
27 |
android:layout_width="fill_parent" |
|
28 |
android:layout_height="0dp" |
|
29 |
android:layout_weight="1" |
|
30 |
android:layout_marginLeft="10dp" |
|
31 |
android:layout_marginRight="10dp" |
|
32 |
android:paddingLeft="5dp" |
|
33 |
android:paddingRight="5dp" |
|
34 |
android:background="@color/light_grey" |
|
35 |
android:orientation="horizontal"> |
|
36 |
|
|
37 |
<TextView |
|
38 |
android:id="@+id/configDetailsName1" |
|
39 |
android:layout_width="0dp" |
|
40 |
android:layout_height="match_parent" |
|
41 |
android:layout_weight="1.0" |
|
42 |
android:gravity="center_vertical|start" |
|
43 |
android:paddingStart="5dp" |
|
44 |
android:textSize="26sp" |
|
45 |
android:singleLine="true" |
|
46 |
android:maxLines="1" |
|
47 |
android:text="@string/config_name"/> |
|
48 |
|
|
49 |
<TextView |
|
50 |
android:id="@+id/configDetailsName2" |
|
51 |
android:layout_width="0dp" |
|
52 |
android:layout_height="match_parent" |
|
53 |
android:layout_weight="2.5" |
|
54 |
android:gravity="center_vertical|start" |
|
55 |
android:paddingStart="5dp" |
|
56 |
android:textSize="26sp" |
|
57 |
android:singleLine="true" |
|
58 |
android:maxLines="1"/> |
|
59 |
|
|
60 |
</LinearLayout> |
|
61 |
|
|
62 |
<LinearLayout |
|
63 |
android:layout_width="fill_parent" |
|
64 |
android:layout_height="0dp" |
|
65 |
android:layout_weight="1" |
|
66 |
android:layout_marginLeft="10dp" |
|
67 |
android:layout_marginRight="10dp" |
|
68 |
android:paddingLeft="5dp" |
|
69 |
android:paddingRight="5dp" |
|
70 |
android:background="@color/light_grey" |
|
71 |
android:orientation="horizontal"> |
|
72 |
|
|
73 |
<TextView |
|
74 |
android:id="@+id/configDetailsAuthor1" |
|
75 |
android:layout_width="0dp" |
|
76 |
android:layout_height="match_parent" |
|
77 |
android:layout_weight="1.0" |
|
78 |
android:gravity="center_vertical|start" |
|
79 |
android:paddingStart="5dp" |
|
80 |
android:textSize="26sp" |
|
81 |
android:singleLine="true" |
|
82 |
android:maxLines="1" |
|
83 |
android:text="@string/config_author"/> |
|
84 |
|
|
85 |
<TextView |
|
86 |
android:id="@+id/configDetailsAuthor2" |
|
87 |
android:layout_width="0dp" |
|
88 |
android:layout_height="match_parent" |
|
89 |
android:layout_weight="2.5" |
|
90 |
android:gravity="center_vertical|start" |
|
91 |
android:paddingStart="5dp" |
|
92 |
android:textSize="26sp" |
|
93 |
android:singleLine="true" |
|
94 |
android:maxLines="1"/> |
|
95 |
|
|
96 |
</LinearLayout> |
|
97 |
</LinearLayout> |
src/main/res/layout/config_difficulty.xml | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
|
3 |
android:layout_width="fill_parent" |
|
4 |
android:layout_height="0dp" |
|
5 |
android:layout_weight="1" |
|
6 |
android:gravity="center|fill_horizontal" |
|
7 |
android:background="@color/grey" |
|
8 |
android:orientation="vertical"> |
|
9 |
|
|
10 |
<TextView |
|
11 |
android:id="@+id/configDifficultyTitle" |
|
12 |
android:layout_width="match_parent" |
|
13 |
android:layout_height="0dp" |
|
14 |
android:layout_weight="1" |
|
15 |
android:gravity="center" |
|
16 |
android:textSize="26sp" |
|
17 |
android:layout_marginTop="10dp" |
|
18 |
android:layout_marginLeft="10dp" |
|
19 |
android:layout_marginRight="10dp" |
|
20 |
android:paddingLeft="2dp" |
|
21 |
android:paddingRight="2dp" |
|
22 |
android:maxLines="1" |
|
23 |
android:text="@string/config_difficulty" |
|
24 |
android:background="@color/light_grey"/> |
|
25 |
|
|
26 |
</LinearLayout> |
src/main/res/layout/config_mesh.xml | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
|
3 |
android:layout_width="fill_parent" |
|
4 |
android:layout_height="0dp" |
|
5 |
android:layout_weight="1" |
|
6 |
android:gravity="center|fill_horizontal" |
|
7 |
android:background="@color/grey" |
|
8 |
android:orientation="vertical"> |
|
9 |
|
|
10 |
<TextView |
|
11 |
android:id="@+id/configMeshTitle" |
|
12 |
android:layout_width="match_parent" |
|
13 |
android:layout_height="0dp" |
|
14 |
android:layout_weight="1" |
|
15 |
android:gravity="center" |
|
16 |
android:textSize="26sp" |
|
17 |
android:layout_marginTop="10dp" |
|
18 |
android:layout_marginLeft="10dp" |
|
19 |
android:layout_marginRight="10dp" |
|
20 |
android:paddingLeft="2dp" |
|
21 |
android:paddingRight="2dp" |
|
22 |
android:maxLines="1" |
|
23 |
android:text="@string/config_mesh" |
|
24 |
android:background="@color/light_grey"/> |
|
25 |
|
|
26 |
<LinearLayout |
|
27 |
android:layout_width="fill_parent" |
|
28 |
android:layout_height="0dp" |
|
29 |
android:layout_weight="1" |
|
30 |
android:layout_marginLeft="10dp" |
|
31 |
android:layout_marginRight="10dp" |
|
32 |
android:paddingLeft="5dp" |
|
33 |
android:paddingRight="5dp" |
|
34 |
android:background="@color/light_grey" |
|
35 |
android:orientation="horizontal"> |
|
36 |
|
|
37 |
<TextView |
|
38 |
android:layout_width="0dp" |
|
39 |
android:layout_height="match_parent" |
|
40 |
android:layout_weight="1.0" |
|
41 |
android:gravity="center_vertical|start" |
|
42 |
android:paddingStart="5dp" |
|
43 |
android:textSize="26sp" |
|
44 |
android:singleLine="true" |
|
45 |
android:maxLines="1" |
|
46 |
android:text="@string/config_name"/> |
|
47 |
|
|
48 |
<TextView |
|
49 |
android:id="@+id/configDetailsName" |
|
50 |
android:layout_width="0dp" |
|
51 |
android:layout_height="match_parent" |
|
52 |
android:layout_weight="1.0" |
|
53 |
android:gravity="center_vertical|start" |
|
54 |
android:paddingStart="5dp" |
|
55 |
android:textSize="26sp" |
|
56 |
android:singleLine="true" |
|
57 |
android:maxLines="1"/> |
|
58 |
|
|
59 |
</LinearLayout> |
|
60 |
|
|
61 |
<LinearLayout |
|
62 |
android:layout_width="fill_parent" |
|
63 |
android:layout_height="0dp" |
|
64 |
android:layout_weight="1" |
|
65 |
android:layout_marginLeft="10dp" |
|
66 |
android:layout_marginRight="10dp" |
|
67 |
android:layout_marginBottom="10dp" |
|
68 |
android:paddingLeft="5dp" |
|
69 |
android:paddingRight="5dp" |
|
70 |
android:background="@color/light_grey" |
|
71 |
android:orientation="horizontal"> |
|
72 |
|
|
73 |
<TextView |
|
74 |
android:layout_width="0dp" |
|
75 |
android:layout_height="match_parent" |
|
76 |
android:layout_weight="1.0" |
|
77 |
android:gravity="center_vertical|start" |
|
78 |
android:paddingStart="5dp" |
|
79 |
android:textSize="26sp" |
|
80 |
android:singleLine="true" |
|
81 |
android:maxLines="1" |
|
82 |
android:text="@string/config_author"/> |
|
83 |
|
|
84 |
<TextView |
|
85 |
android:id="@+id/configDetailsAuthor" |
|
86 |
android:layout_width="0dp" |
|
87 |
android:layout_height="match_parent" |
|
88 |
android:layout_weight="1.0" |
|
89 |
android:gravity="center_vertical|start" |
|
90 |
android:paddingStart="5dp" |
|
91 |
android:textSize="26sp" |
|
92 |
android:singleLine="true" |
|
93 |
android:maxLines="1"/> |
|
94 |
|
|
95 |
</LinearLayout> |
|
96 |
</LinearLayout> |
src/main/res/values-de/strings.xml | ||
---|---|---|
41 | 41 |
<string name="about">Über die App</string> |
42 | 42 |
<string name="abandon_solve">Gib auf</string> |
43 | 43 |
|
44 |
<string name="config_details">Einzelheiten</string> |
|
45 |
<string name="config_name">Name</string> |
|
46 |
<string name="config_author">Autor</string> |
|
47 |
<string name="config_difficulty">Schwierigkeit</string> |
|
48 |
<string name="config_mesh">3D Netz</string> |
|
49 |
<string name="config_mesh_simple">Einfach und schnell</string> |
|
50 |
<string name="config_mesh_nice">Schön und komplex</string> |
|
51 |
|
|
44 | 52 |
<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> |
45 | 53 |
<string name="credits2">Hübsche Muster von Walter Randelshofer. Sehen Sie <a href="http://www.randelshofer.ch">http://www.randelshofer.ch</a></string> |
46 | 54 |
<string name="credits3">Laden Sie den Code herunter, sehen Sie sich Tutorials an, lernen Sie, wie Sie Ihren eigenen Grafikeffekt hinzufügen, wie Sie Ihr eigenes Objekt codieren, ein hübsches Muster beisteuern, Ihren eigenen Löser implementieren oder einen Fehler melden: <a href="https://distorted.org/redmine/projects/magic-cube/wiki">Distorted.org</a> |
src/main/res/values-es/strings.xml | ||
---|---|---|
41 | 41 |
<string name="about">Acerca de</string> |
42 | 42 |
<string name="abandon_solve">Abandonar</string> |
43 | 43 |
|
44 |
<string name="config_details">Detalles</string> |
|
45 |
<string name="config_name">Nombre</string> |
|
46 |
<string name="config_author">Autor</string> |
|
47 |
<string name="config_difficulty">Dificultad</string> |
|
48 |
<string name="config_mesh">Malla 3D</string> |
|
49 |
<string name="config_mesh_simple">Sencilla y rápida</string> |
|
50 |
<string name="config_mesh_nice">Bonita y compleja</string> |
|
51 |
|
|
44 | 52 |
<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> |
45 | 53 |
<string name="credits2">Pretty Patterns por Walter Randelshofer. Mira <a href="http://www.randelshofer.ch">http://www.randelshofer.ch</a></string> |
46 | 54 |
<string name="credits3">Descarga código, echa un vistazo a los tutoriales, aprende a añadir tu propio efecto gráfico, aprende a programar tu propio objeto, contribuye con un patrón hermoso, implementa tu propio solucionador o informa un error: \n\n<a href="https://distorted.org/redmine/projects/magic-cube/wiki">Distorted.org</a> |
src/main/res/values-fr/strings.xml | ||
---|---|---|
41 | 41 |
<string name="about">À propos de</string> |
42 | 42 |
<string name="abandon_solve">Abandonner</string> |
43 | 43 |
|
44 |
<string name="config_details">Détails</string> |
|
45 |
<string name="config_name">Nom</string> |
|
46 |
<string name="config_author">Auteur</string> |
|
47 |
<string name="config_difficulty">Difficulté</string> |
|
48 |
<string name="config_mesh">Maillage 3D</string> |
|
49 |
<string name="config_mesh_simple">Simple et rapide</string> |
|
50 |
<string name="config_mesh_nice">Agréable et complexe</string> |
|
51 |
|
|
44 | 52 |
<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> |
45 | 53 |
<string name="credits2">Pretty Patterns par Walter Randelshofer. Voir <a href="http://www.randelshofer.ch">http://www.randelshofer.ch</a></string> |
46 | 54 |
<string name="credits3">Téléchargez le code, consultez les tutoriels, apprenez comment ajouter votre propre effet graphique, apprenez à coder votre propre objet, contribuez à un joli modèle, mettez en oeuvre votre propre solutionneur ou signalez un bogue : \n\n<a href="https://distorted.org/redmine/projects/magic-cube/wiki">Distorted.org</a> |
src/main/res/values-ja/strings.xml | ||
---|---|---|
41 | 41 |
<string name="about">アプリについて</string> |
42 | 42 |
<string name="abandon_solve">あきらめる</string> |
43 | 43 |
|
44 |
<string name="config_details">詳細</string> |
|
45 |
<string name="config_name">名前</string> |
|
46 |
<string name="config_author">著者</string> |
|
47 |
<string name="config_difficulty">困難</string> |
|
48 |
<string name="config_mesh">メッシュ3D</string> |
|
49 |
<string name="config_mesh_simple">シンプルで速い</string> |
|
50 |
<string name="config_mesh_nice">素晴らしくて複雑</string> |
|
51 |
|
|
44 | 52 |
<string name="credits1">ディストートグラフィックのライブラリを使用して開発されたオープンソースアプリ。<a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">GPL バージョン 2</a>でライセンスされているか、または-オプション-それ以降のすべてのバージョン。</string> |
45 | 53 |
<string name="credits2">Pretty Patterns 沿って Walter Randelshofer. 見る <a href="http://www.randelshofer.ch">http://www.randelshofer.ch</a></string> |
46 | 54 |
<string name="credits3">コードのダウンロード、チュートリアルの確認、独自のグラフィック効果の追加方法、独自のオブジェクトのコーディング方法、プリティパターンの提出、独自のソルバーの実装、またはバグの報告などについて知る。\n\n <a href="https://distorted.org/redmine/projects/magic-cube/wiki">Distorted.org</a> |
src/main/res/values-ko/strings.xml | ||
---|---|---|
41 | 41 |
<string name="about">정보</string> |
42 | 42 |
<string name="abandon_solve">포기</string> |
43 | 43 |
|
44 |
<string name="config_details">세부</string> |
|
45 |
<string name="config_name">이름</string> |
|
46 |
<string name="config_author">작가</string> |
|
47 |
<string name="config_difficulty">어려움</string> |
|
48 |
<string name="config_mesh">메쉬3D</string> |
|
49 |
<string name="config_mesh_simple">간단하고 빠름</string> |
|
50 |
<string name="config_mesh_nice">멋지고 복잡한</string> |
|
51 |
|
|
44 | 52 |
<string name="credits1">왜곡된 그래픽 라이브러리를 사용하여 개발된 오픈 소스 앱. <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">GPL 버전 2</a> 또는 귀하의 선택에 따라 최신 버전으로 라이센스가 부여됩니다.</string> |
45 | 53 |
<string name="credits2">Pretty Patterns 으로 Walter Randelshofer. 보다 <a href="http://www.randelshofer.ch">http://www.randelshofer.ch</a></string> |
46 | 54 |
<string name="credits3">코드를 다운로드하고, 튜토리얼을보고, 자신만의 그래픽 효과를 추가하는 방법을 배우고, 자신의 개체를 코딩하는 방법을 배우며, 예쁜 패턴을 기여하고, 자신만의 해결사를 구현하거나, 버그를 신고하십시오:\n\n<a href="https://distorted.org/redmine/projects/magic-cube/wiki">Distorted.org</a> |
src/main/res/values-pl/strings.xml | ||
---|---|---|
41 | 41 |
<string name="about">O aplikacji</string> |
42 | 42 |
<string name="abandon_solve">Zrezygnuj</string> |
43 | 43 |
|
44 |
<string name="config_details">O kostce</string> |
|
45 |
<string name="config_name">Nazwa</string> |
|
46 |
<string name="config_author">Autor</string> |
|
47 |
<string name="config_difficulty">Trudność</string> |
|
48 |
<string name="config_mesh">Siatka 3D</string> |
|
49 |
<string name="config_mesh_simple">Prosta i szybka</string> |
|
50 |
<string name="config_mesh_nice">Ładna i wolna</string> |
|
51 |
|
|
44 | 52 |
<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> |
45 | 53 |
<string name="credits2">Piękne Wzory Waltera Randelshofera. Zobacz <a href="http://www.randelshofer.ch">http://www.randelshofer.ch</a></string> |
46 | 54 |
<string name="credits3">Ściągnij kod, rzuć okiem na tutoriale, naucz się napisać swój własny efekt graficzny, dodaj własny obiekt, wymyśl Piekny Wzór, zaimplementuj Rozwiązywacz, albo zgłoś błąd: \n\n<a href="https://distorted.org/redmine/projects/magic-cube/wiki">Distorted.org</a></string> |
src/main/res/values-ru/strings.xml | ||
---|---|---|
41 | 41 |
<string name="about">О нас</string> |
42 | 42 |
<string name="abandon_solve">Сдаться</string> |
43 | 43 |
|
44 |
<string name="config_details">Детали</string> |
|
45 |
<string name="config_name">Имя</string> |
|
46 |
<string name="config_author">Автор</string> |
|
47 |
<string name="config_difficulty">Сложность</string> |
|
48 |
<string name="config_mesh">3D Cетка</string> |
|
49 |
<string name="config_mesh_simple">Простая и быстрая</string> |
|
50 |
<string name="config_mesh_nice">Красивая и сложная</string> |
|
51 |
|
|
44 | 52 |
<string name="credits1">Приложение с открытым исходным кодом, разработанное с использованием библиотеки графики Искажений. Лицензируется согласно <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">версии 2 GPL</a> или любой более поздней версии по вашему выбору.</string> |
45 | 53 |
<string name="credits2">Pretty Patterns по Walter Randelshofer. Смотри <a href="http://www.randelshofer.ch">http://www.randelshofer.ch</a></string> |
46 | 54 |
<string name="credits3">Загрузите код, посмотрите учебные пособия, узнайте, как добавить собственный графический эффект, научитесь кодировать собственный объект, добавьте Симпатичный узор, внедрите собственный решебник или сообщите об ошибке: \n\n<a href="https://distorted.org/redmine/projects/magic-cube/wiki">Distorted.org</a> |
src/main/res/values-zh-rCN/strings.xml | ||
---|---|---|
41 | 41 |
<string name="about">关于</string> |
42 | 42 |
<string name="abandon_solve">放弃</string> |
43 | 43 |
|
44 |
<string name="config_details">细节</string> |
|
45 |
<string name="config_name">姓名</string> |
|
46 |
<string name="config_author">作者</string> |
|
47 |
<string name="config_difficulty">困难</string> |
|
48 |
<string name="config_mesh">3D网格</string> |
|
49 |
<string name="config_mesh_simple">简单快捷</string> |
|
50 |
<string name="config_mesh_nice">美好而复杂</string> |
|
51 |
|
|
44 | 52 |
<string name="credits1">此应用程式原始码开发使用Distorted图型库。根据<a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">通用公共许可版本2</a>或者任何更新版本(根据您的选择)进行许可。</string> |
45 | 53 |
<string name="credits2">Pretty Patterns by Werner Randelshofer. 請看 <a href="http://www.randelshofer.ch">http://www.randelshofer.ch</a></string> |
46 | 54 |
<string name="credits3">下载代码,浏览教程,学习如何添加自己的图形效果,学习如何编写自己的专案,创造美丽图案,实现自己的求解器,或者报告错误:<a href="https://distorted.org/redmine/projects/magic-cube/wiki">Distorted.org</a> |
src/main/res/values-zh-rTW/strings.xml | ||
---|---|---|
41 | 41 |
<string name="about">關於</string> |
42 | 42 |
<string name="abandon_solve">放棄</string> |
43 | 43 |
|
44 |
<string name="config_details">細節</string> |
|
45 |
<string name="config_name">姓名</string> |
|
46 |
<string name="config_author">作者</string> |
|
47 |
<string name="config_difficulty">困難</string> |
|
48 |
<string name="config_mesh">3D網格</string> |
|
49 |
<string name="config_mesh_simple">簡單快捷</string> |
|
50 |
<string name="config_mesh_nice">美好而復雜</string> |
|
51 |
|
|
44 | 52 |
<string name="credits1">此應用程式原始碼開發使用Distorted圖型庫。根據<a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html">通用公共許可版本2</a>或者任何更新版本(根據您的選擇)進行許可。</string> |
45 | 53 |
<string name="credits2">Pretty Patterns by Werner Randelshofer. 請看 <a href="http://www.randelshofer.ch">http://www.randelshofer.ch</a></string> |
46 | 54 |
<string name="credits3">下載代碼,瀏覽教程,學習如何添加自己的圖形效果,學習如何编寫自己的專案,創造美麗圖案,實现自己的求解器,或者報告錯誤:\n\n<a href="https://distorted.org/redmine/projects/magic-cube/wiki">Distorted.org</a> |
src/main/res/values/strings.xml | ||
---|---|---|
52 | 52 |
<string name="decline" translatable="false">Decline</string> |
53 | 53 |
<string name="abandon_solve">Give up</string> |
54 | 54 |
|
55 |
<string name="config_details">Details</string> |
|
56 |
<string name="config_name">Name</string> |
|
57 |
<string name="config_author">Author</string> |
|
58 |
<string name="config_difficulty">Difficulty</string> |
|
59 |
<string name="config_mesh">3D Mesh</string> |
|
60 |
<string name="config_mesh_simple">Simple and fast</string> |
|
61 |
<string name="config_mesh_nice">Nice and complex</string> |
|
62 |
|
|
55 | 63 |
<string name="opengl_error" translatable="false">Error</string> |
56 | 64 |
<string name="opengl_error_text" translatable="false">This device does not support OpenGL 3.0</string> |
57 | 65 |
|
Also available in: Unified diff
Progress with ConfigScreen.