Revision 9b6f8f18
Added by Leszek Koltunski 7 months ago
src/main/java/org/distorted/helpers/BaseActivity.java | ||
---|---|---|
32 | 32 |
protected static final int THEME_WHITE = 1; |
33 | 33 |
protected static final int THEME_GREEN = 2; |
34 | 34 |
|
35 |
public static final float RATIO_HID = 0.050f; |
|
36 | 35 |
public static final float RATIO_BAR = 0.080f; |
37 | 36 |
public static final int FLAGS = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
38 | 37 |
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
... | ... | |
45 | 44 |
protected int mScreenWidth, mScreenHeight; |
46 | 45 |
protected int mHeightLowerBar, mHeightUpperBar; |
47 | 46 |
protected float mDensity; |
47 |
protected int mDarkC, mNormalC, mMediumC, mLightC; |
|
48 | 48 |
protected SharedPreferences mPreferences; |
49 | 49 |
|
50 | 50 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
59 | 59 |
|
60 | 60 |
switch(mCurrentTheme) |
61 | 61 |
{ |
62 |
case THEME_WHITE : setTheme(R.style.WhiteTheme); break; |
|
63 |
case THEME_GREEN : setTheme(R.style.GreenTheme); break; |
|
64 |
default : setTheme(R.style.GreyTheme); break; |
|
62 |
case THEME_WHITE : setTheme(R.style.WhiteTheme); |
|
63 |
mDarkC = R.color.darkWhite; |
|
64 |
mNormalC = R.color.normalWhite; |
|
65 |
mMediumC = R.color.mediumWhite; |
|
66 |
mLightC = R.color.lightWhite; |
|
67 |
break; |
|
68 |
case THEME_GREEN : setTheme(R.style.GreenTheme); |
|
69 |
mDarkC = R.color.darkGreen; |
|
70 |
mNormalC = R.color.normalGreen; |
|
71 |
mMediumC = R.color.mediumGreen; |
|
72 |
mLightC = R.color.lightGreen; |
|
73 |
break; |
|
74 |
default : setTheme(R.style.GreyTheme); |
|
75 |
mDarkC = R.color.darkGrey; |
|
76 |
mNormalC = R.color.normalGrey; |
|
77 |
mMediumC = R.color.mediumGrey; |
|
78 |
mLightC = R.color.lightGrey; |
|
79 |
break; |
|
65 | 80 |
} |
66 | 81 |
|
67 | 82 |
super.onCreate(savedState); |
src/main/java/org/distorted/helpers/ObjectGridCreator.java | ||
---|---|---|
108 | 108 |
|
109 | 109 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
110 | 110 |
|
111 |
public void createObjectGrid(Activity act, ScrollView scrollView, int sortMode) |
|
111 |
public void createObjectGrid(Activity act, ScrollView scrollView, int sortMode, int color)
|
|
112 | 112 |
{ |
113 | 113 |
mSortMode = sortMode; |
114 | 114 |
|
... | ... | |
137 | 137 |
int height = (int)(TITLE_SIZE*mCubeSize); |
138 | 138 |
|
139 | 139 |
mROC = RubikObjectCategories.create(sortMode); |
140 |
if( mROC.hasIcons() ) constructIconBasedGrid(act,layout,mROC,height); |
|
141 |
else constructIconlessGrid(act,layout,mROC,height); |
|
140 |
if( mROC.hasIcons() ) constructIconBasedGrid(act,layout,mROC,height,color);
|
|
141 |
else constructIconlessGrid(act,layout,mROC,height,color);
|
|
142 | 142 |
} |
143 | 143 |
} |
144 | 144 |
|
145 | 145 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
146 | 146 |
|
147 |
private void constructIconBasedGrid(Activity act, LinearLayout layout, RubikObjectCategories roc, int height) |
|
147 |
private void constructIconBasedGrid(Activity act, LinearLayout layout, RubikObjectCategories roc, int height, int color)
|
|
148 | 148 |
{ |
149 | 149 |
int numCategories = roc.getNumCategories(); |
150 | 150 |
|
... | ... | |
153 | 153 |
for(int c=0; c<numCategories; c++) |
154 | 154 |
{ |
155 | 155 |
int iconID = roc.getIconId(c); |
156 |
View title = constructTitle(act,iconID,height); |
|
156 |
View title = constructTitle(act,iconID,height,color);
|
|
157 | 157 |
layout.addView(title); |
158 | 158 |
mCategoryGrids[c] = constructGrid(act,c); |
159 | 159 |
layout.addView(mCategoryGrids[c]); |
... | ... | |
162 | 162 |
|
163 | 163 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
164 | 164 |
|
165 |
private void constructIconlessGrid(Activity act, LinearLayout layout, RubikObjectCategories roc, int height) |
|
165 |
private void constructIconlessGrid(Activity act, LinearLayout layout, RubikObjectCategories roc, int height, int color)
|
|
166 | 166 |
{ |
167 | 167 |
int numCategories = roc.getNumCategories(); |
168 | 168 |
|
... | ... | |
171 | 171 |
for(int c=0; c<numCategories; c++) |
172 | 172 |
{ |
173 | 173 |
String titleStr = roc.getTitle(c); |
174 |
View title = constructTitle(act,titleStr,height); |
|
174 |
View title = constructTitle(act,titleStr,height,color);
|
|
175 | 175 |
layout.addView(title); |
176 | 176 |
mCategoryGrids[c] = constructGrid(act,c); |
177 | 177 |
layout.addView(mCategoryGrids[c]); |
... | ... | |
180 | 180 |
|
181 | 181 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
182 | 182 |
|
183 |
private View constructTitle(Activity act, int iconID, int height) |
|
183 |
private View constructTitle(Activity act, int iconID, int height, int color)
|
|
184 | 184 |
{ |
185 | 185 |
ImageView view = new ImageView(act); |
186 | 186 |
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,height); |
... | ... | |
188 | 188 |
params.leftMargin = m; |
189 | 189 |
params.rightMargin = m; |
190 | 190 |
view.setLayoutParams(params); |
191 |
|
|
192 |
view.setBackgroundResource(R.color.darkGrey); |
|
193 |
|
|
191 |
view.setBackgroundResource(color); |
|
194 | 192 |
int p = (int)(TITLE_PADDING*height); |
195 | 193 |
view.setPadding( p,p,p,p ); |
196 | 194 |
view.setImageResource(iconID); |
... | ... | |
200 | 198 |
|
201 | 199 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
202 | 200 |
|
203 |
private View constructTitle(Activity act, String title, int height) |
|
201 |
private View constructTitle(Activity act, String title, int height, int color)
|
|
204 | 202 |
{ |
205 | 203 |
TextView view = new TextView(act); |
206 | 204 |
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,height); |
... | ... | |
208 | 206 |
params.leftMargin = m; |
209 | 207 |
params.rightMargin = m; |
210 | 208 |
view.setLayoutParams(params); |
211 |
view.setBackgroundResource(R.color.darkGrey);
|
|
209 |
view.setBackgroundResource(color);
|
|
212 | 210 |
view.setGravity(Gravity.CENTER); |
213 | 211 |
|
214 | 212 |
int size = (int)(TEXT_SIZE*height); |
src/main/java/org/distorted/main/MainActivity.java | ||
---|---|---|
84 | 84 |
mBubbleUpdates.setVisibility(View.INVISIBLE); |
85 | 85 |
mNumUpdates = 0; |
86 | 86 |
|
87 |
mGrid = new MainScrollGrid(); |
|
88 |
mGrid.createGrid(this,mScreenWidth,mSortMode); |
|
89 |
|
|
90 | 87 |
Thread thread = new Thread() |
91 | 88 |
{ |
92 | 89 |
public void run() |
... | ... | |
124 | 121 |
{ |
125 | 122 |
super.onConfigurationChanged(conf); |
126 | 123 |
getWindowWidth(conf); |
127 |
if( mGrid!=null ) mGrid.updateGrid(this,mScreenWidth); |
|
124 |
if( mGrid!=null ) mGrid.updateGrid(this,mScreenWidth,mDarkC);
|
|
128 | 125 |
} |
129 | 126 |
|
130 | 127 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
146 | 143 |
|
147 | 144 |
restorePreferences(mJustStarted); |
148 | 145 |
|
146 |
mGrid = new MainScrollGrid(); |
|
147 |
mGrid.createGrid(this,mScreenWidth,mSortMode,mDarkC); |
|
148 |
|
|
149 | 149 |
RubikNetwork network = RubikNetwork.getInstance(); |
150 | 150 |
network.signUpForUpdates(this); |
151 | 151 |
|
... | ... | |
369 | 369 |
|
370 | 370 |
int vw = v.getWidth(); |
371 | 371 |
|
372 |
MainSettingsPopup popup = new MainSettingsPopup(this,mSortMode,mCurrentTheme,mScreenWidth,sw,sh);
|
|
372 |
MainSettingsPopup popup = new MainSettingsPopup(this,mSortMode,mCurrentTheme,sw,sh); |
|
373 | 373 |
popup.displayPopup(this,v,((vw-sw)/2),0); |
374 | 374 |
} |
375 | 375 |
|
... | ... | |
419 | 419 |
{ |
420 | 420 |
mNumUpdates--; |
421 | 421 |
updateBubble(mNumUpdates); |
422 |
mGrid.updateGrid(this,mScreenWidth); |
|
422 |
mGrid.updateGrid(this,mScreenWidth,mDarkC);
|
|
423 | 423 |
} |
424 | 424 |
|
425 | 425 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
434 | 434 |
public void sortObjectsBy(int sortMode) |
435 | 435 |
{ |
436 | 436 |
mSortMode = sortMode; |
437 |
mGrid.createGrid(this,mScreenWidth,mSortMode); |
|
437 |
mGrid.createGrid(this,mScreenWidth,mSortMode,mDarkC);
|
|
438 | 438 |
} |
439 | 439 |
|
440 | 440 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
src/main/java/org/distorted/main/MainScrollGrid.java | ||
---|---|---|
31 | 31 |
|
32 | 32 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
33 | 33 |
|
34 |
void createGrid(final MainActivity act, int windowWidth, int sortMode) |
|
34 |
void createGrid(final MainActivity act, int windowWidth, int sortMode, int color)
|
|
35 | 35 |
{ |
36 | 36 |
if( mCreator==null ) mCreator = new ObjectGridCreator(windowWidth); |
37 | 37 |
|
... | ... | |
41 | 41 |
ScrollView scrollView = act.findViewById(R.id.objectScroll); |
42 | 42 |
scrollView.removeAllViews(); |
43 | 43 |
|
44 |
mCreator.createObjectGrid(act,scrollView,sortMode); |
|
44 |
mCreator.createObjectGrid(act,scrollView,sortMode,color);
|
|
45 | 45 |
|
46 | 46 |
DisplayMetrics displaymetrics = new DisplayMetrics(); |
47 | 47 |
act.getWindowManager().getDefaultDisplay().getRealMetrics(displaymetrics); |
... | ... | |
70 | 70 |
|
71 | 71 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
72 | 72 |
|
73 |
void updateGrid(final MainActivity act, int scrW) |
|
73 |
void updateGrid(final MainActivity act, int scrW, int color)
|
|
74 | 74 |
{ |
75 | 75 |
act.runOnUiThread(new Runnable() |
76 | 76 |
{ |
... | ... | |
78 | 78 |
public void run() |
79 | 79 |
{ |
80 | 80 |
if( mSortMode<0 ) mSortMode = MainSettingsPopup.SORT_DEFAULT; |
81 |
createGrid(act,scrW,mSortMode); |
|
81 |
createGrid(act,scrW,mSortMode,color);
|
|
82 | 82 |
} |
83 | 83 |
}); |
84 | 84 |
} |
src/main/java/org/distorted/main/MainSettingsPopup.java | ||
---|---|---|
12 | 12 |
import android.content.Context; |
13 | 13 |
import android.content.res.Resources; |
14 | 14 |
import android.os.Build; |
15 |
import android.util.TypedValue; |
|
16 | 15 |
import android.view.Gravity; |
17 | 16 |
import android.view.LayoutInflater; |
18 | 17 |
import android.view.View; |
... | ... | |
21 | 20 |
import android.widget.ListPopupWindow; |
22 | 21 |
import android.widget.PopupWindow; |
23 | 22 |
import android.widget.Spinner; |
24 |
import android.widget.TextView; |
|
25 | 23 |
|
26 | 24 |
import java.lang.ref.WeakReference; |
27 | 25 |
import java.lang.reflect.Field; |
... | ... | |
38 | 36 |
|
39 | 37 |
public static final int SORT_DEFAULT = SORT_SHAPE; |
40 | 38 |
|
41 |
private static final float MENU_TITLE_SIZE= 0.070f; |
|
42 |
private static final float MENU_TEXT_SIZE = 0.060f; |
|
43 | 39 |
private static final int[] mLocation = new int[2]; |
44 | 40 |
|
45 | 41 |
private final int mWidth, mHeight; |
... | ... | |
86 | 82 |
|
87 | 83 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
88 | 84 |
|
89 |
MainSettingsPopup(MainActivity act, int sortMethod, int themeValue, |
|
90 |
int scrWidth, int popupWidth, int popupHeight) |
|
85 |
MainSettingsPopup(MainActivity act, int sortMethod, int themeValue, int popupWidth, int popupHeight) |
|
91 | 86 |
{ |
92 | 87 |
mAct = new WeakReference<>(act); |
93 | 88 |
|
... | ... | |
105 | 100 |
mPopup.setContentView(layout); |
106 | 101 |
mPopup.setFocusable(true); |
107 | 102 |
|
108 |
int titleSize = (int)(0.26f*popupHeight); |
|
109 |
int textSize = (int)(0.19f*popupHeight); |
|
110 |
|
|
111 |
TextView title = layout.findViewById(R.id.settingsTitle); |
|
112 |
//title.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize); |
|
113 |
TextView sortText = layout.findViewById(R.id.sortText); |
|
114 |
//sortText.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize); |
|
115 |
TextView themeTitle = layout.findViewById(R.id.themeText); |
|
116 |
// themeTitle.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize); |
|
117 |
|
|
118 | 103 |
Spinner sortSpinner = layout.findViewById(R.id.sortMethod); |
119 | 104 |
sortSpinner.setOnItemSelectedListener(this); |
120 | 105 |
|
src/main/res/drawable/ui_spinner.xml | ||
---|---|---|
5 | 5 |
<item> |
6 | 6 |
<shape android:shape="rectangle"> |
7 | 7 |
<solid android:color="?lightC" /> |
8 |
<corners android:radius="6dip" />
|
|
8 |
<corners android:radius="6dp" /> |
|
9 | 9 |
<stroke |
10 | 10 |
android:color="?normalC" |
11 | 11 |
android:width="2dp"/> |
src/main/res/layout/dialog_scrollable_panes.xml | ||
---|---|---|
3 | 3 |
android:id="@+id/updates_scroll" |
4 | 4 |
android:layout_width="match_parent" |
5 | 5 |
android:layout_height="match_parent" |
6 |
android:background="?darkC" |
|
6 | 7 |
android:paddingLeft="10dp" |
7 | 8 |
android:paddingRight="10dp"> |
8 | 9 |
|
src/main/res/layout/dialog_title.xml | ||
---|---|---|
3 | 3 |
android:layout_width="match_parent" |
4 | 4 |
android:layout_height="match_parent" |
5 | 5 |
android:textSize="20sp" |
6 |
android:background="?mediumC" |
|
6 | 7 |
android:gravity="center" |
7 | 8 |
android:padding="10dp"/> |
src/main/res/values/colors.xml | ||
---|---|---|
1 | 1 |
<?xml version="1.0" encoding="utf-8"?> |
2 | 2 |
<resources> |
3 |
<color name="colorPrimary">#008577</color> |
|
4 |
<color name="colorPrimaryDark">#00574B</color> |
|
5 |
<color name="colorAccent">#D81B60</color> |
|
3 |
|
|
6 | 4 |
<color name="red">#ffff0000</color> |
7 | 5 |
<color name="black">#ff010101</color> |
8 | 6 |
<color name="white">#ffffffff</color> |
9 | 7 |
|
10 |
<color name="darkGreen">#ff009900</color>
|
|
11 |
<color name="normalGreen">#ff00aa00</color>
|
|
12 |
<color name="mediumGreen">#ff00bb00</color>
|
|
8 |
<color name="darkGreen">#ff008800</color>
|
|
9 |
<color name="normalGreen">#ff00a000</color>
|
|
10 |
<color name="mediumGreen">#ff00b800</color>
|
|
13 | 11 |
<color name="lightGreen">#ff00cc00</color> |
14 | 12 |
|
15 | 13 |
<color name="darkGrey">#ff222222</color> |
... | ... | |
17 | 15 |
<color name="mediumGrey">#ff444444</color> |
18 | 16 |
<color name="lightGrey">#ff555555</color> |
19 | 17 |
|
20 |
<color name="darkWhite">#ffd0d0d0</color>
|
|
21 |
<color name="normalWhite">#ffe0e0e0</color>
|
|
22 |
<color name="mediumWhite">#fff0f0f0</color>
|
|
18 |
<color name="darkWhite">#ffa0a0a0</color>
|
|
19 |
<color name="normalWhite">#ffc0c0c0</color>
|
|
20 |
<color name="mediumWhite">#ffe0e0e0</color>
|
|
23 | 21 |
<color name="lightWhite">#ffffffff</color> |
24 | 22 |
</resources> |
src/main/res/values/styles.xml | ||
---|---|---|
34 | 34 |
</style> |
35 | 35 |
|
36 | 36 |
<style name="NegativeButtonStyle" parent="Widget.MaterialComponents.Button.TextButton.Dialog"> |
37 |
<item name="android:textColor">#ffffff</item>
|
|
37 |
<item name="android:textColor">@color/white</item>
|
|
38 | 38 |
</style> |
39 | 39 |
|
40 | 40 |
<style name="PositiveButtonStyle" parent="Widget.MaterialComponents.Button.TextButton.Dialog"> |
41 |
<item name="android:textColor">#ffffff</item>
|
|
41 |
<item name="android:textColor">@color/white</item>
|
|
42 | 42 |
</style> |
43 | 43 |
|
44 | 44 |
<style name="ButtonStyleTextColor"> |
Also available in: Unified diff
progress with colors in styles