Project

General

Profile

« Previous | Next » 

Revision 362807f0

Added by Leszek Koltunski over 4 years ago

Make the Scores Dialog screen-size invariant.

View differences:

src/main/java/org/distorted/dialogs/RubikDialogScoresPagerAdapter.java
24 24
import androidx.fragment.app.FragmentActivity;
25 25
import androidx.viewpager.widget.PagerAdapter;
26 26
import androidx.viewpager.widget.ViewPager;
27

  
28
import android.util.DisplayMetrics;
27 29
import android.view.View;
28 30
import android.view.ViewGroup;
29 31
import android.widget.LinearLayout;
......
198 200
  @NonNull
199 201
  public Object instantiateItem(@NonNull ViewGroup collection, int position)
200 202
    {
201
    mViews[position] = new RubikDialogScoresView(mAct, mIsSubmitting);
203
    DisplayMetrics metrics = mAct.getResources().getDisplayMetrics();
204

  
205
    mViews[position] = new RubikDialogScoresView(mAct, metrics.heightPixels, mIsSubmitting);
202 206
    collection.addView(mViews[position]);
203 207

  
204 208
    boolean allCreated = true;
src/main/java/org/distorted/dialogs/RubikDialogScoresView.java
23 23
import android.content.res.Resources;
24 24
import androidx.fragment.app.FragmentActivity;
25 25
import android.util.AttributeSet;
26
import android.util.TypedValue;
26 27
import android.view.View;
27 28
import android.widget.FrameLayout;
28 29
import android.widget.ImageView;
......
30 31
import android.widget.TextView;
31 32

  
32 33
import org.distorted.main.R;
34
import org.distorted.main.RubikActivity;
33 35
import org.distorted.objects.RubikObjectList;
34 36
import org.distorted.scores.RubikScores;
35 37

  
......
39 41

  
40 42
public class RubikDialogScoresView extends FrameLayout
41 43
  {
42
  LinearLayout mLayout;
44
  private LinearLayout mLayout;
45
  private int mWidth;
43 46

  
44 47
///////////////////////////////////////////////////////////////////////////////////////////////////
45 48

  
......
57 60

  
58 61
///////////////////////////////////////////////////////////////////////////////////////////////////
59 62

  
60
  public RubikDialogScoresView(Context context, boolean isSubmitting)
63
  public RubikDialogScoresView(Context context, int width, boolean isSubmitting)
61 64
    {
62 65
    super(context);
63 66

  
67
    mWidth = width;
68

  
64 69
    View view = inflate(context, R.layout.dialog_scores_downloading, null);
65 70
    addView(view);
66 71
    TextView text = findViewById(R.id.message_text);
......
75 80
    TextView text = levelLayout.findViewById(R.id.scoresScrambleTitle);
76 81
    text.setText(act.getString(R.string.lv_placeholder,level+1));
77 82

  
83
    int size = (int)(mWidth* RubikActivity.SCORES_LEVEL_TEXT);
84
    text.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);
85

  
78 86
    Resources res = act.getResources();
79 87
    String packageName = act.getPackageName();
80 88

  
......
93 101
    String theirTime;
94 102
    int theirCountryID;
95 103

  
104
    int height = (int)(mWidth* RubikActivity.SCORES_ITEM_TEXT);
96 105
    int white = res.getColor(R.color.white);
97 106
    int red   = res.getColor(R.color.red);
98 107
    boolean equals;
......
104 113
        if( !mySubmitted && myRecordInSeconds<time[j] && !inserted )
105 114
          {
106 115
          inserted = true;
107
          View row = createRow(act, myCountryID, myName, myRecord, red);
116
          View row = createRow(act, myCountryID, myName, myRecord, height, red);
108 117
          levelLayout.addView(row);
109 118
          }
110 119

  
......
115 124
          if( equals ) inserted=true;
116 125
          theirCountryID = res.getIdentifier( country[j], "drawable", packageName);
117 126
          theirTime = Float.toString(time[j]);
118
          View row = createRow(act, theirCountryID, name[j], theirTime, equals ? red:white);
127
          View row = createRow(act, theirCountryID, name[j], theirTime, height, equals ? red:white);
119 128
          levelLayout.addView(row);
120 129
          }
121 130
        }
......
123 132

  
124 133
    if( !inserted )
125 134
      {
126
      View row = createRow(act, myCountryID, myName, myRecord, red);
135
      View row = createRow(act, myCountryID, myName, myRecord, height, red);
127 136
      levelLayout.addView(row);
128 137
      }
129 138

  
......
132 141

  
133 142
///////////////////////////////////////////////////////////////////////////////////////////////////
134 143

  
135
  private View createRow(FragmentActivity act, int countryID, String name, String time, int color)
144
  private View createRow(FragmentActivity act, int countryID, String name, String time, int height, int color)
136 145
    {
137 146
    View row = inflate(act, R.layout.dialog_scores_scramble_row, null);
138 147

  
......
147 156
    textName.setTextColor(color);
148 157
    textTime.setTextColor(color);
149 158

  
159
    textName.setTextSize(TypedValue.COMPLEX_UNIT_PX, height);
160
    textTime.setTextSize(TypedValue.COMPLEX_UNIT_PX, height);
161

  
150 162
    return row;
151 163
    }
152 164

  
src/main/java/org/distorted/main/RubikActivity.java
52 52
    public static final float MENU_ITEM_SIZE      = 0.12f;
53 53
    public static final float PATTERN_GROUP_TEXT  = 0.03f;
54 54
    public static final float PATTERN_CHILD_TEXT  = 0.02f;
55
    public static final float SCORES_LEVEL_TEXT   = 0.035f;
56
    public static final float SCORES_ITEM_TEXT    = 0.030f;
55 57

  
56 58
    public static final float MENU_BIG_TEXT_SIZE   = 0.05f;
57 59
    public static final float MENU_MEDIUM_TEXT_SIZE= 0.04f;
src/main/res/layout/dialog_scores_scramble_row.xml
1 1
<?xml version="1.0" encoding="utf-8"?>
2 2
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 3
    android:layout_width="fill_parent"
4
    android:layout_height="0dp"
4
    android:layout_height="wrap_content"
5 5
    android:paddingBottom="2dp"
6 6
    android:paddingTop="2dp"
7 7
    android:orientation="horizontal" >
......
10 10
        android:id="@+id/scoresScrambleRowCountry"
11 11
        android:layout_width="match_parent"
12 12
        android:layout_height="match_parent"
13
        android:paddingBottom="3dp"
14
        android:paddingTop="3dp"
13 15
        android:layout_weight="1.5"
14
        android:textSize="20sp"
15 16
        android:gravity="start"
16 17
        android:background="@color/black" />
17 18

  
src/main/res/layout/dialog_scores_scramble_title.xml
14 14
    <TextView
15 15
        android:id="@+id/scoresScrambleTitle"
16 16
        android:layout_width="match_parent"
17
        android:layout_height="32dp"
17
        android:layout_height="wrap_content"
18 18
        android:textSize="24sp"
19 19
        android:gravity="center"
20 20
        android:background="@color/grey"

Also available in: Unified diff