Project

General

Profile

Download (3.29 KB) Statistics
| Branch: | Tag: | Revision:

magiccube / src / main / java / org / distorted / dialogs / RubikDialogPatternPagerAdapter.java @ 05c044a5

1
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2020 Leszek Koltunski                                                               //
3
//                                                                                               //
4
// This file is part of Magic Cube.                                                              //
5
//                                                                                               //
6
// Magic Cube is proprietary software licensed under an EULA which you should have received      //
7
// along with the code. If not, check https://distorted.org/magic/License-Magic-Cube.html        //
8
///////////////////////////////////////////////////////////////////////////////////////////////////
9

    
10
package org.distorted.dialogs;
11

    
12
import androidx.annotation.NonNull;
13
import androidx.fragment.app.FragmentActivity;
14
import androidx.viewpager.widget.PagerAdapter;
15
import androidx.viewpager.widget.ViewPager;
16
import android.view.View;
17
import android.view.ViewGroup;
18

    
19
import org.distorted.patterns.RubikPattern;
20
import org.distorted.patterns.RubikPatternList;
21

    
22
///////////////////////////////////////////////////////////////////////////////////////////////////
23

    
24
class RubikDialogPatternPagerAdapter extends PagerAdapter
25
  {
26
  private final FragmentActivity mAct;
27
  private final RubikDialogPatternView[] mViews;
28
  private final RubikDialogPattern mDialog;
29
  private final int mNumTabs;
30

    
31
///////////////////////////////////////////////////////////////////////////////////////////////////
32

    
33
  RubikDialogPatternPagerAdapter(FragmentActivity act, ViewPager viewPager, RubikDialogPattern dialog)
34
    {
35
    mAct = act;
36
    mDialog = dialog;
37
    mNumTabs = RubikPatternList.NUM_OBJECTS;
38
    mViews = new RubikDialogPatternView[mNumTabs];
39

    
40
    viewPager.setAdapter(this);
41
    viewPager.setOffscreenPageLimit(mNumTabs-1);
42
    }
43

    
44
///////////////////////////////////////////////////////////////////////////////////////////////////
45

    
46
  void rememberState()
47
    {
48
    RubikPattern pattern = RubikPattern.getInstance();
49

    
50
    for(int i=0; i<mNumTabs; i++)
51
      {
52
      int cat = mViews[i].getCurrentCategory();
53
      int pos = mViews[i].getCurrentVisiblePos();
54
      int exp = mViews[i].getExpanded();
55
      pattern.rememberState(i,cat,pos,exp);
56
      }
57
    }
58

    
59
///////////////////////////////////////////////////////////////////////////////////////////////////
60

    
61
  @Override
62
  @NonNull
63
  public Object instantiateItem(@NonNull ViewGroup collection, final int position)
64
    {
65
    mViews[position] = new RubikDialogPatternView(mAct, mDialog, position);
66
    collection.addView(mViews[position]);
67

    
68
    return mViews[position];
69
    }
70

    
71
///////////////////////////////////////////////////////////////////////////////////////////////////
72

    
73
  @Override
74
  public void destroyItem(ViewGroup collection, int position, @NonNull Object view)
75
    {
76
    collection.removeView((View) view);
77
    }
78

    
79
///////////////////////////////////////////////////////////////////////////////////////////////////
80

    
81
  @Override
82
  public int getCount()
83
    {
84
    return mNumTabs;
85
    }
86

    
87
///////////////////////////////////////////////////////////////////////////////////////////////////
88

    
89
  @Override
90
  public boolean isViewFromObject(@NonNull View view, @NonNull Object object)
91
    {
92
    return view == object;
93
    }
94
  }
(10-10/23)