Project

General

Profile

« Previous | Next » 

Revision 992748ab

Added by Leszek Koltunski about 4 years ago

Report to Google Analytics that we're watching a tutorial.

View differences:

src/main/java/org/distorted/dialogs/RubikDialogTutorialView.java
22 22
import android.content.Context;
23 23
import android.content.res.Resources;
24 24
import android.graphics.drawable.Drawable;
25
import android.os.Bundle;
25 26
import android.util.AttributeSet;
26 27
import android.util.TypedValue;
27 28
import android.view.View;
28 29
import android.widget.Button;
29 30
import android.widget.FrameLayout;
30
import android.widget.ImageView;
31 31
import android.widget.LinearLayout;
32 32

  
33 33
import androidx.core.content.ContextCompat;
34 34
import androidx.fragment.app.FragmentActivity;
35 35

  
36
import com.google.firebase.analytics.FirebaseAnalytics;
37

  
38
import org.distorted.main.BuildConfig;
36 39
import org.distorted.main.R;
37 40
import org.distorted.main.RubikActivity;
38 41
import org.distorted.objects.ObjectList;
......
42 45

  
43 46
public class RubikDialogTutorialView extends FrameLayout
44 47
  {
45
  private TutorialList mList;
46

  
47
///////////////////////////////////////////////////////////////////////////////////////////////////
48

  
49 48
  public RubikDialogTutorialView(Context context, AttributeSet attrs, int defStyle)
50 49
    {
51 50
    super(context, attrs, defStyle);
......
70 69
    Resources res = act.getResources();
71 70
    String packageName = act.getPackageName();
72 71

  
73
    mList = TutorialList.getObject(position);
74
    ObjectList objList = mList.getObjectList();
75
    int size           = mList.getSize();
72
    TutorialList list  = TutorialList.getObject(position);
73
    ObjectList objList = list.getObjectList();
74
    int size           = list.getSize();
76 75

  
77 76
    View tab = inflate( act, R.layout.dialog_tutorial_tab, null);
78 77
    LinearLayout layout = tab.findViewById(R.id.tabLayout);
79 78

  
80
    int numTutorials = mList.getNumTutorials();
79
    int numTutorials = list.getNumTutorials();
81 80

  
82 81
    for(int i=0; i<numTutorials; i++)
83 82
      {
84
      String coun = mList.getTutorialLanguage(i);
85
      String desc = mList.getTutorialDescription(i);
86
      String url  = mList.getTutorialURL(i);
87
      String auth = mList.getTutorialAuthor(i);
83
      String coun = list.getTutorialLanguage(i);
84
      String desc = list.getTutorialDescription(i);
85
      String url  = list.getTutorialURL(i);
86
      String auth = list.getTutorialAuthor(i);
88 87

  
89 88
      int countryID = res.getIdentifier( coun, "drawable", packageName);
90 89

  
......
97 96

  
98 97
///////////////////////////////////////////////////////////////////////////////////////////////////
99 98

  
100
  private View createRow(final RubikActivity act, int countryID, final String desc, final String url, String auth, int height, final ObjectList obj, final int size)
99
  private View createRow(final RubikActivity act, int countryID, final String desc, final String url,
100
                         final String auth, int height, final ObjectList obj, final int size)
101 101
    {
102 102
    View row = inflate( act, R.layout.dialog_tutorial_row, null);
103 103
    Button butt = row.findViewById(R.id.tutorialRowButton);
104 104

  
105 105
    int id = countryID!=0 ? countryID : R.drawable.un;
106
    final String buttText = desc+" ("+auth+")";
106 107

  
107
    butt.setText(desc+" ("+auth+")");
108
    butt.setText(buttText);
108 109
    butt.setTextSize(TypedValue.COMPLEX_UNIT_PX, 0.5f*height);
109 110
    butt.setHeight(height);
110 111

  
......
118 119
      public void onClick(View v)
119 120
        {
120 121
        act.switchTutorial(url,obj,size);
122
        analyticsReport(act,desc,auth,obj,size);
121 123
        }
122 124
      });
123 125

  
124 126
    return row;
125 127
    }
128

  
129
///////////////////////////////////////////////////////////////////////////////////////////////////
130

  
131
  private void analyticsReport(RubikActivity act, String desc, String author, ObjectList obj, int size)
132
    {
133
    String message = desc+" ("+author+")";
134

  
135
    if( BuildConfig.DEBUG )
136
       {
137
       android.util.Log.d("tutorial", message);
138
       }
139
    else
140
      {
141
      FirebaseAnalytics analytics = act.getAnalytics();
142
      String name = obj.name()+"_"+size;
143

  
144
      if( analytics!=null )
145
        {
146
        Bundle bundle = new Bundle();
147
        bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, message);
148
        bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, name);
149
        analytics.logEvent(FirebaseAnalytics.Event.TUTORIAL_BEGIN, bundle);
150
        }
151
      }
152
    }
126 153
  }

Also available in: Unified diff